{
 "cells": [
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Iceberg Demo\n",
    "\n",
    "Sample fragmentation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/mnt/home/samlg/miniforge-pypy3/envs/ms-gen-pred/lib/python3.8/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
      "  from .autonotebook import tqdm as notebook_tqdm\n",
      "2023-11-27 21:37:59,965\tINFO util.py:159 -- Missing packages: ['ipywidgets']. Run `pip install -U ipywidgets`, then restart the notebook server for rich notebook output.\n",
      "2023-11-27 21:38:00,217\tINFO util.py:159 -- Missing packages: ['ipywidgets']. Run `pip install -U ipywidgets`, then restart the notebook server for rich notebook output.\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "from collections import defaultdict\n",
    "\n",
    "import ms_pred.magma.fragmentation as fe\n",
    "from ms_pred.common.plot_utils import *\n",
    "from ms_pred.dag_pred import joint_model\n",
    "\n",
    "set_style()\n",
    "\n",
    "\n",
    "%load_ext autoreload\n",
    "%autoreload 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "def draw_single_mol(frag, engine):\n",
    "    \"\"\"Draw single molecule.\"\"\"\n",
    "    draw_dict = engine.get_draw_dict(frag)\n",
    "    keep_atoms = draw_dict[\"hatoms\"]\n",
    "    keep_bonds = draw_dict[\"hbonds\"]\n",
    "    mol = draw_dict[\"mol\"]\n",
    "    # print(keep_atoms, keep_bonds)\n",
    "    Chem.Kekulize(mol)\n",
    "    drawing = Draw.MolToImage(mol, highlightAtoms=keep_atoms, highlightBonds=keep_bonds)\n",
    "    return drawing"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Get single example from NIST20\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "sample_labels = \"../data/spec_datasets/sample_labels.tsv\"\n",
    "test_df = pd.read_csv(sample_labels, sep=\"\\t\")\n",
    "\n",
    "# Get first entry from test_df for smiles and ionization\n",
    "test_smiles = test_df.iloc[0][\"smiles\"]\n",
    "test_ionization = test_df.iloc[0][\"ionization\"]\n",
    "\n",
    "test_smiles = \"InChI=1S/C7H15NO3/c1-8(2,3)5-6(9)4-7(10)11/h6,9H,4-5H2,1-3H3/p+1\"\n",
    "test_smiles = \"C[N+](C)(C)CC(CC(=O)O)O\"\n",
    "test_ionization = \"[M+H]+\""
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Load models (run quickstart/iceberg/download_models.sh first to download)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Get best models\n",
    "inten_ckpt = f\"../quickstart/iceberg/models/canopus_iceberg_score.ckpt\"\n",
    "gen_ckpt = f\"../quickstart/iceberg/models/canopus_iceberg_generate.ckpt\"\n",
    "\n",
    "# Load joint model\n",
    "model = joint_model.JointModel.from_checkpoints(\n",
    "    inten_checkpoint=inten_ckpt, gen_checkpoint=gen_ckpt\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/mnt/home/samlg/miniforge-pypy3/envs/ms-gen-pred/lib/python3.8/site-packages/dgl/backend/pytorch/tensor.py:44: UserWarning: The given NumPy array is not writeable, and PyTorch does not support non-writeable tensors. This means you can write to the underlying (supposedly non-writeable) NumPy array using the tensor. You may want to copy the array to protect its data or make it writeable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at  /opt/conda/conda-bld/pytorch_1631630839582/work/torch/csrc/utils/tensor_numpy.cpp:180.)\n",
      "  return th.as_tensor(data, dtype=dtype)\n"
     ]
    }
   ],
   "source": [
    "# Predict example entry\n",
    "# Model predict takes both a smiles string and an ionization\n",
    "outputs = model.predict_mol(\n",
    "    smi=test_smiles,\n",
    "    adduct=test_ionization,\n",
    "    device=\"cpu\",\n",
    "    max_nodes=100,\n",
    "    binned_out=False,\n",
    "    threshold=0,\n",
    ")"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The model output will contain 3 keys: \"root_inchi\", \"name\", and \"frags\"\n",
    "\n",
    "1. root_inchi: Root inchi string\n",
    "2. name: Often empty string used to specify a spectrum input\n",
    "3. frags: Dictionary containing the predicted fragments\n",
    "\n",
    "In particular, frags has keys corresponding to hash IDs of each subfragment, mapped to the intensities predicted at that value. Each value (outputs['frags']['key']) is itself a dictionary with the following keys:\n",
    "\n",
    "1. frag: A binary representation corresponding to which atoms are present in the substructure\n",
    "2. frag_hash: Unique hash of the substructure\n",
    "3. parents: hash ids of the parent fragments in the predicted DAG\n",
    "4. mz_no_charge: a list of mass values corresponding to various hydrogen rearrangements _less_ the mz of the precursor adduct\n",
    "5. mz_charge: equivalent to mz_no_charge but adding the precursor adduct\n",
    "6. intens: predicted intensity at each mz value\n",
    "7. form: Molecular formula\n",
    "\n",
    "In addition, for completeness, the following additional keys are also included:\n",
    "\n",
    "8. atoms_pulled: Defines which atoms were removed from the molecule in the tree (can be ignored)\n",
    "9. left_pred: Defines predictions at each of the atoms for their probability of leaving\n",
    "10. max_broken: This defines how many bonds were broken in the DAG to reach the fragment of interest, which influences masking during generation\n",
    "11. tree_depth: Tree depth on the DAG\n",
    "12. id: A shorter ID not used elsewhere\n",
    "13. prob_gen: The probability of observing this subfragment according to the first model\n",
    "14. score: The score that the MAGMa heuristic applies to this fragment\n",
    "15. frag_hs: The total number of hydrogens attached to the original fragment\n",
    "16. max_remove_hs: maximum number of hs to remove\n",
    "17. max_add_hs: Max hs to add\n",
    "\n",
    "Below we show how to identify the fragments and plot the outputs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Binary repr of fragmentation number: 135\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<PIL.PngImagePlugin.PngImageFile image mode=RGB size=300x300>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "root_inchi = outputs[\"root_inchi\"]\n",
    "frags = outputs[\"frags\"]\n",
    "\n",
    "# Generate a fragmentation engine\n",
    "engine = fe.FragmentEngine(mol_str=root_inchi, mol_str_type=\"inchi\")\n",
    "\n",
    "# Select a random fragment index to draw\n",
    "frag_dicts = list(frags.items())\n",
    "random_frag_ind = np.random.choice(len(frag_dicts))\n",
    "random_frag = frag_dicts[random_frag_ind]\n",
    "\n",
    "# Get \"frag\" the binary representation of which atoms are present and draw it\n",
    "frag_num = random_frag[1][\"frag\"]\n",
    "print(f\"Binary repr of fragmentation number: {frag_num}\")\n",
    "draw_single_mol(frag_num, engine)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Below we show how to sum all intensities according to mz in order to generate a single spectrum"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'1d5950a40bb7a53837637d1113896ecca4f5145cbb5add027775fc0a1740c27b': {'frag': 2047,\n",
       "  'frag_hash': '1d5950a40bb7a53837637d1113896ecca4f5145cbb5add027775fc0a1740c27b',\n",
       "  'parents': [],\n",
       "  'atoms_pulled': [7, 10, 6, 8, 0, 1, 2, 3, 4, 5, 9],\n",
       "  'left_pred': [0.9811416268348694,\n",
       "   0.7324033379554749,\n",
       "   0.619623601436615,\n",
       "   0.49200230836868286,\n",
       "   0.2843877077102661,\n",
       "   0.2843877077102661,\n",
       "   0.2843877077102661,\n",
       "   0.20492412149906158,\n",
       "   0.11244534701108932,\n",
       "   0.05535908415913582,\n",
       "   0.022297628223896027],\n",
       "  'max_broken': 0,\n",
       "  'tree_depth': 0,\n",
       "  'id': 0,\n",
       "  'prob_gen': 1,\n",
       "  'score': 0,\n",
       "  'form': 'C7NO3H16',\n",
       "  'base_mass': 162.113018372,\n",
       "  'frag_hs': 16,\n",
       "  'max_remove_hs': 0,\n",
       "  'max_add_hs': 0,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.004553685896098614,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [156.06606818,\n",
       "   157.073893212,\n",
       "   158.081718244,\n",
       "   159.089543276,\n",
       "   160.097368308,\n",
       "   161.10519334,\n",
       "   162.113018372,\n",
       "   163.120843404,\n",
       "   164.128668436,\n",
       "   165.136493468,\n",
       "   166.1443185,\n",
       "   167.152143532,\n",
       "   168.159968564],\n",
       "  'mz_charge': [157.07334463200002,\n",
       "   158.08116966400002,\n",
       "   159.08899469600001,\n",
       "   160.096819728,\n",
       "   161.10464476,\n",
       "   162.112469792,\n",
       "   163.120294824,\n",
       "   164.128119856,\n",
       "   165.135944888,\n",
       "   166.14376992,\n",
       "   167.151594952,\n",
       "   168.159419984,\n",
       "   169.167245016]},\n",
       " '74a28b2eb10efab52a55f9f1410d4ef4f3e975f6a16f9d271c4b7a7a1bba946d': {'frag': 1912,\n",
       "  'frag_hash': '74a28b2eb10efab52a55f9f1410d4ef4f3e975f6a16f9d271c4b7a7a1bba946d',\n",
       "  'score': 1,\n",
       "  'id': 1,\n",
       "  'parents': ['1d5950a40bb7a53837637d1113896ecca4f5145cbb5add027775fc0a1740c27b',\n",
       "   '70bc493e2706b2379c79e12e9683cf41aaae08f02b8d3a4238029d3de0ea9f04',\n",
       "   'e2c7043eb9f641b60ee19c7d67917d21349021566fbd9690dcd9d3d15ffe7da7'],\n",
       "  'atoms_pulled': [8, 10, 6, 9, 3, 5, 4],\n",
       "  'left_pred': [0.8751758933067322,\n",
       "   0.720849871635437,\n",
       "   0.22969524562358856,\n",
       "   0.014486851170659065,\n",
       "   0.011401568539440632,\n",
       "   0.0006653668242506683,\n",
       "   3.0320505175041035e-05],\n",
       "  'max_broken': 1,\n",
       "  'tree_depth': 1,\n",
       "  'prob_gen': 0.9811416268348694,\n",
       "  'form': 'C4O3H7',\n",
       "  'base_mass': 103.039519084,\n",
       "  'frag_hs': 7,\n",
       "  'max_remove_hs': 1,\n",
       "  'max_add_hs': 1,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.5088855028152466,\n",
       "   0.13025277853012085,\n",
       "   0.02120833285152912,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [96.99256889200001,\n",
       "   98.00039392400001,\n",
       "   99.00821895600001,\n",
       "   100.016043988,\n",
       "   101.02386902,\n",
       "   102.031694052,\n",
       "   103.039519084,\n",
       "   104.047344116,\n",
       "   105.055169148,\n",
       "   106.06299418,\n",
       "   107.070819212,\n",
       "   108.078644244,\n",
       "   109.086469276],\n",
       "  'mz_charge': [97.99984534400001,\n",
       "   99.00767037600001,\n",
       "   100.015495408,\n",
       "   101.02332044,\n",
       "   102.031145472,\n",
       "   103.038970504,\n",
       "   104.046795536,\n",
       "   105.054620568,\n",
       "   106.0624456,\n",
       "   107.070270632,\n",
       "   108.078095664,\n",
       "   109.085920696,\n",
       "   110.093745728]},\n",
       " 'ae71b8047ca77d099ab55d8c7350a8f6478a74faff5799b9f08a36b77ff8c241': {'frag': 1656,\n",
       "  'frag_hash': 'ae71b8047ca77d099ab55d8c7350a8f6478a74faff5799b9f08a36b77ff8c241',\n",
       "  'score': 2,\n",
       "  'id': 13,\n",
       "  'parents': ['74a28b2eb10efab52a55f9f1410d4ef4f3e975f6a16f9d271c4b7a7a1bba946d',\n",
       "   'a0e100d069277e8576c4ab93b8f698cd04100614564dd7c86eda8a1ea8cd5000',\n",
       "   '85c975ccf4ed78a0573f89995edcaa9ea4d6584f427289d1ac82a1616a66a18f'],\n",
       "  'atoms_pulled': [10, 6, 9, 3, 4, 5],\n",
       "  'left_pred': [0.8486507534980774,\n",
       "   0.12439925223588943,\n",
       "   0.01924961991608143,\n",
       "   0.0022247403394430876,\n",
       "   0.00022206586436368525,\n",
       "   1.2898935608518514e-07],\n",
       "  'max_broken': 2,\n",
       "  'tree_depth': 2,\n",
       "  'prob_gen': 0.8586714863777161,\n",
       "  'form': 'C4O2H6',\n",
       "  'base_mass': 86.036779432,\n",
       "  'frag_hs': 6,\n",
       "  'max_remove_hs': 2,\n",
       "  'max_add_hs': 2,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.005648735910654068,\n",
       "   0.0008084885193966329,\n",
       "   0.0008237697184085846,\n",
       "   7.695356907788664e-05,\n",
       "   0.0007305529434233904,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [79.98982924,\n",
       "   80.997654272,\n",
       "   82.005479304,\n",
       "   83.013304336,\n",
       "   84.021129368,\n",
       "   85.0289544,\n",
       "   86.036779432,\n",
       "   87.044604464,\n",
       "   88.052429496,\n",
       "   89.060254528,\n",
       "   90.06807956,\n",
       "   91.075904592,\n",
       "   92.083729624],\n",
       "  'mz_charge': [80.997105692,\n",
       "   82.004930724,\n",
       "   83.012755756,\n",
       "   84.020580788,\n",
       "   85.02840582,\n",
       "   86.036230852,\n",
       "   87.044055884,\n",
       "   88.051880916,\n",
       "   89.059705948,\n",
       "   90.06753098,\n",
       "   91.075356012,\n",
       "   92.083181044,\n",
       "   93.091006076]},\n",
       " 'c8dcbbbdd27a03202edb9fd67160564fabec9fc56dbbb00651798d1d915c8bc3': {'frag': 1023,\n",
       "  'frag_hash': 'c8dcbbbdd27a03202edb9fd67160564fabec9fc56dbbb00651798d1d915c8bc3',\n",
       "  'score': 1,\n",
       "  'id': 2,\n",
       "  'parents': ['1d5950a40bb7a53837637d1113896ecca4f5145cbb5add027775fc0a1740c27b'],\n",
       "  'atoms_pulled': [7, 8, 0, 1, 2, 4, 9, 5, 3, 6],\n",
       "  'left_pred': [0.9434576034545898,\n",
       "   0.7751439213752747,\n",
       "   0.7361482381820679,\n",
       "   0.7361482381820679,\n",
       "   0.7361482381820679,\n",
       "   0.4313085377216339,\n",
       "   0.018222404643893242,\n",
       "   0.0037137893959879875,\n",
       "   0.001636556233279407,\n",
       "   1.6087717085611075e-05],\n",
       "  'max_broken': 1,\n",
       "  'tree_depth': 1,\n",
       "  'prob_gen': 0.7324033379554749,\n",
       "  'form': 'C7NO2H15',\n",
       "  'base_mass': 145.11027872,\n",
       "  'frag_hs': 15,\n",
       "  'max_remove_hs': 1,\n",
       "  'max_add_hs': 1,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0031265432480722666,\n",
       "   0.00033499786513857543,\n",
       "   0.00014951980847399682,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [139.063328528,\n",
       "   140.07115356,\n",
       "   141.078978592,\n",
       "   142.086803624,\n",
       "   143.094628656,\n",
       "   144.102453688,\n",
       "   145.11027872,\n",
       "   146.118103752,\n",
       "   147.125928784,\n",
       "   148.133753816,\n",
       "   149.141578848,\n",
       "   150.14940388,\n",
       "   151.157228912],\n",
       "  'mz_charge': [140.07060498,\n",
       "   141.078430012,\n",
       "   142.086255044,\n",
       "   143.094080076,\n",
       "   144.101905108,\n",
       "   145.10973014,\n",
       "   146.117555172,\n",
       "   147.125380204,\n",
       "   148.133205236,\n",
       "   149.141030268,\n",
       "   150.1488553,\n",
       "   151.156680332,\n",
       "   152.164505364]},\n",
       " '39b48f5f501d4356d338d61a8502a64c4f6d5c0413a43bd0a23e4e7dafc5bd11': {'frag': 632,\n",
       "  'frag_hash': '39b48f5f501d4356d338d61a8502a64c4f6d5c0413a43bd0a23e4e7dafc5bd11',\n",
       "  'score': 3,\n",
       "  'id': 36,\n",
       "  'parents': ['ae71b8047ca77d099ab55d8c7350a8f6478a74faff5799b9f08a36b77ff8c241',\n",
       "   '4168fe96420ece8340581fff043c40f761f027c904d76438100388b513dadadc',\n",
       "   'd26812b1b6d202c627808035a74f50f90949d31a4aae98f4d90dd58572d4604b'],\n",
       "  'atoms_pulled': [],\n",
       "  'left_pred': [],\n",
       "  'max_broken': 3,\n",
       "  'tree_depth': 3,\n",
       "  'prob_gen': 0.7287122011184692,\n",
       "  'form': 'C4OH5',\n",
       "  'base_mass': 69.03403978,\n",
       "  'frag_hs': 5,\n",
       "  'max_remove_hs': 3,\n",
       "  'max_add_hs': 3,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.008297828957438469,\n",
       "   0.002429611049592495,\n",
       "   0.006489691324532032,\n",
       "   0.0008168846252374351,\n",
       "   0.0004209550388623029,\n",
       "   0.000563961686566472,\n",
       "   6.594064325327054e-05,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [62.987089588,\n",
       "   63.99491462,\n",
       "   65.002739652,\n",
       "   66.010564684,\n",
       "   67.018389716,\n",
       "   68.026214748,\n",
       "   69.03403978,\n",
       "   70.041864812,\n",
       "   71.049689844,\n",
       "   72.057514876,\n",
       "   73.065339908,\n",
       "   74.07316494,\n",
       "   75.080989972],\n",
       "  'mz_charge': [63.99436604,\n",
       "   65.002191072,\n",
       "   66.010016104,\n",
       "   67.017841136,\n",
       "   68.025666168,\n",
       "   69.0334912,\n",
       "   70.041316232,\n",
       "   71.049141264,\n",
       "   72.056966296,\n",
       "   73.064791328,\n",
       "   74.07261636,\n",
       "   75.080441392,\n",
       "   76.088266424]},\n",
       " 'd26812b1b6d202c627808035a74f50f90949d31a4aae98f4d90dd58572d4604b': {'frag': 888,\n",
       "  'frag_hash': 'd26812b1b6d202c627808035a74f50f90949d31a4aae98f4d90dd58572d4604b',\n",
       "  'score': 2,\n",
       "  'id': 14,\n",
       "  'parents': ['74a28b2eb10efab52a55f9f1410d4ef4f3e975f6a16f9d271c4b7a7a1bba946d',\n",
       "   'c8dcbbbdd27a03202edb9fd67160564fabec9fc56dbbb00651798d1d915c8bc3',\n",
       "   '0e5818a72bab69a9f809ddaa971cd543ff75d76fe913dffb305552bbe9ece22c'],\n",
       "  'atoms_pulled': [8, 9, 4, 3, 5, 6],\n",
       "  'left_pred': [0.4976142644882202,\n",
       "   0.0191222932189703,\n",
       "   0.00021271426521707326,\n",
       "   5.667043751600431e-06,\n",
       "   4.946027729602065e-06,\n",
       "   2.4310669033411614e-08],\n",
       "  'max_broken': 2,\n",
       "  'tree_depth': 2,\n",
       "  'prob_gen': 0.7072558403015137,\n",
       "  'form': 'C4O2H6',\n",
       "  'base_mass': 86.036779432,\n",
       "  'frag_hs': 6,\n",
       "  'max_remove_hs': 2,\n",
       "  'max_add_hs': 2,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.011567298322916031,\n",
       "   0.005445331800729036,\n",
       "   0.0017298830207437277,\n",
       "   0.0002649242233019322,\n",
       "   0.0021678709890693426,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [79.98982924,\n",
       "   80.997654272,\n",
       "   82.005479304,\n",
       "   83.013304336,\n",
       "   84.021129368,\n",
       "   85.0289544,\n",
       "   86.036779432,\n",
       "   87.044604464,\n",
       "   88.052429496,\n",
       "   89.060254528,\n",
       "   90.06807956,\n",
       "   91.075904592,\n",
       "   92.083729624],\n",
       "  'mz_charge': [80.997105692,\n",
       "   82.004930724,\n",
       "   83.012755756,\n",
       "   84.020580788,\n",
       "   85.02840582,\n",
       "   86.036230852,\n",
       "   87.044055884,\n",
       "   88.051880916,\n",
       "   89.059705948,\n",
       "   90.06753098,\n",
       "   91.075356012,\n",
       "   92.083181044,\n",
       "   93.091006076]},\n",
       " '7a9a989abfe52b8bd1c0eb4aac2ca609a7fc2b87d4044172abd75a82713edb2b': {'frag': 447,\n",
       "  'frag_hash': '7a9a989abfe52b8bd1c0eb4aac2ca609a7fc2b87d4044172abd75a82713edb2b',\n",
       "  'score': 2,\n",
       "  'id': 3,\n",
       "  'parents': ['1d5950a40bb7a53837637d1113896ecca4f5145cbb5add027775fc0a1740c27b',\n",
       "   'c8dcbbbdd27a03202edb9fd67160564fabec9fc56dbbb00651798d1d915c8bc3',\n",
       "   '234db42e13ad06299c13eefa4499c4c32a3dd9cb18a054bac4a3a2c97c4d2449',\n",
       "   '1e78662a044c4bdf560e8a3d4620a3627dd2e846127a8e8bb86642de65f070e2'],\n",
       "  'atoms_pulled': [7, 8, 0, 1, 2, 4, 5, 3],\n",
       "  'left_pred': [0.9376749396324158,\n",
       "   0.8692747354507446,\n",
       "   0.4239571690559387,\n",
       "   0.4239571690559387,\n",
       "   0.4239571690559387,\n",
       "   0.045743897557258606,\n",
       "   0.004563812632113695,\n",
       "   0.00028370670042932034],\n",
       "  'max_broken': 1,\n",
       "  'tree_depth': 1,\n",
       "  'prob_gen': 0.619623601436615,\n",
       "  'form': 'C6NOH15',\n",
       "  'base_mass': 117.1153641,\n",
       "  'frag_hs': 15,\n",
       "  'max_remove_hs': 1,\n",
       "  'max_add_hs': 1,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0030846644658595324,\n",
       "   0.0012358000967651606,\n",
       "   0.002663281047716737,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [111.068413908,\n",
       "   112.07623894,\n",
       "   113.084063972,\n",
       "   114.091889004,\n",
       "   115.099714036,\n",
       "   116.107539068,\n",
       "   117.1153641,\n",
       "   118.123189132,\n",
       "   119.13101416399999,\n",
       "   120.13883919599999,\n",
       "   121.14666422799999,\n",
       "   122.15448925999999,\n",
       "   123.16231429199999],\n",
       "  'mz_charge': [112.07569036,\n",
       "   113.083515392,\n",
       "   114.091340424,\n",
       "   115.099165456,\n",
       "   116.106990488,\n",
       "   117.11481552,\n",
       "   118.122640552,\n",
       "   119.13046558399999,\n",
       "   120.13829061599999,\n",
       "   121.14611564799999,\n",
       "   122.15394067999999,\n",
       "   123.16176571199999,\n",
       "   124.16959074399999]},\n",
       " '15cd818acd9ad5f480fb5a61cf3da27a8119435aafc0b233b55d9c7eaa4aefde': {'frag': 312,\n",
       "  'frag_hash': '15cd818acd9ad5f480fb5a61cf3da27a8119435aafc0b233b55d9c7eaa4aefde',\n",
       "  'score': 3,\n",
       "  'id': 15,\n",
       "  'parents': ['7a9a989abfe52b8bd1c0eb4aac2ca609a7fc2b87d4044172abd75a82713edb2b',\n",
       "   '74a28b2eb10efab52a55f9f1410d4ef4f3e975f6a16f9d271c4b7a7a1bba946d',\n",
       "   'b5689b6d734390611cd52d404d69724d25efffd8495161c5532341010cf9216c',\n",
       "   'd26812b1b6d202c627808035a74f50f90949d31a4aae98f4d90dd58572d4604b',\n",
       "   '1ece7638844d4ebf0b1ee2f75cef1cd485df7123da82a022caaec659d0aeb4cc'],\n",
       "  'atoms_pulled': [8, 3, 4, 5],\n",
       "  'left_pred': [0.00496373325586319,\n",
       "   0.00027696447796188295,\n",
       "   0.00027696447796188295,\n",
       "   3.723417023593356e-07],\n",
       "  'max_broken': 2,\n",
       "  'tree_depth': 2,\n",
       "  'prob_gen': 0.5810055136680603,\n",
       "  'form': 'C3OH6',\n",
       "  'base_mass': 58.041864812,\n",
       "  'frag_hs': 6,\n",
       "  'max_remove_hs': 2,\n",
       "  'max_add_hs': 2,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0031343037262558937,\n",
       "   0.00699284253641963,\n",
       "   0.0025698579847812653,\n",
       "   0.003918367903679609,\n",
       "   0.00040950419497676194,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [51.99491462,\n",
       "   53.002739652,\n",
       "   54.010564684,\n",
       "   55.018389716,\n",
       "   56.026214748,\n",
       "   57.03403978,\n",
       "   58.041864812,\n",
       "   59.049689844,\n",
       "   60.057514876,\n",
       "   61.065339908,\n",
       "   62.07316494,\n",
       "   63.080989972,\n",
       "   64.088815004],\n",
       "  'mz_charge': [53.002191072,\n",
       "   54.010016104,\n",
       "   55.017841136,\n",
       "   56.025666168,\n",
       "   57.0334912,\n",
       "   58.041316232,\n",
       "   59.049141264,\n",
       "   60.056966296,\n",
       "   61.064791328,\n",
       "   62.07261636,\n",
       "   63.080441392,\n",
       "   64.088266424,\n",
       "   65.096091456]},\n",
       " '4168fe96420ece8340581fff043c40f761f027c904d76438100388b513dadadc': {'frag': 767,\n",
       "  'frag_hash': '4168fe96420ece8340581fff043c40f761f027c904d76438100388b513dadadc',\n",
       "  'score': 2,\n",
       "  'id': 16,\n",
       "  'parents': ['c8dcbbbdd27a03202edb9fd67160564fabec9fc56dbbb00651798d1d915c8bc3',\n",
       "   'a0e100d069277e8576c4ab93b8f698cd04100614564dd7c86eda8a1ea8cd5000'],\n",
       "  'atoms_pulled': [7, 0, 1, 2, 4, 9, 3, 6, 5],\n",
       "  'left_pred': [0.7358155250549316,\n",
       "   0.38476571440696716,\n",
       "   0.38476571440696716,\n",
       "   0.38476571440696716,\n",
       "   0.1499716341495514,\n",
       "   0.060126978904008865,\n",
       "   0.007529289927333593,\n",
       "   0.0005422511021606624,\n",
       "   3.1022075290820794e-06],\n",
       "  'max_broken': 2,\n",
       "  'tree_depth': 2,\n",
       "  'prob_gen': 0.567717969417572,\n",
       "  'form': 'C7NOH14',\n",
       "  'base_mass': 128.107539068,\n",
       "  'frag_hs': 14,\n",
       "  'max_remove_hs': 2,\n",
       "  'max_add_hs': 2,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0033481766004115343,\n",
       "   0.0009773931233212352,\n",
       "   0.00020386173855513334,\n",
       "   0.00020546997257042676,\n",
       "   0.0006737374933436513,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [122.060588876,\n",
       "   123.068413908,\n",
       "   124.07623894,\n",
       "   125.084063972,\n",
       "   126.091889004,\n",
       "   127.099714036,\n",
       "   128.107539068,\n",
       "   129.1153641,\n",
       "   130.123189132,\n",
       "   131.131014164,\n",
       "   132.138839196,\n",
       "   133.146664228,\n",
       "   134.15448926],\n",
       "  'mz_charge': [123.067865328,\n",
       "   124.07569036,\n",
       "   125.083515392,\n",
       "   126.091340424,\n",
       "   127.099165456,\n",
       "   128.106990488,\n",
       "   129.11481552,\n",
       "   130.122640552,\n",
       "   131.130465584,\n",
       "   132.138290616,\n",
       "   133.146115648,\n",
       "   134.15394068,\n",
       "   135.161765712]},\n",
       " '0e5818a72bab69a9f809ddaa971cd543ff75d76fe913dffb305552bbe9ece22c': {'frag': 1022,\n",
       "  'frag_hash': '0e5818a72bab69a9f809ddaa971cd543ff75d76fe913dffb305552bbe9ece22c',\n",
       "  'score': 2,\n",
       "  'id': 17,\n",
       "  'parents': ['c8dcbbbdd27a03202edb9fd67160564fabec9fc56dbbb00651798d1d915c8bc3',\n",
       "   'c8dcbbbdd27a03202edb9fd67160564fabec9fc56dbbb00651798d1d915c8bc3',\n",
       "   'c8dcbbbdd27a03202edb9fd67160564fabec9fc56dbbb00651798d1d915c8bc3',\n",
       "   '70bc493e2706b2379c79e12e9683cf41aaae08f02b8d3a4238029d3de0ea9f04'],\n",
       "  'atoms_pulled': [8, 7, 1, 2, 4, 9, 5, 3, 6],\n",
       "  'left_pred': [0.6498532295227051,\n",
       "   0.5646063089370728,\n",
       "   0.25574037432670593,\n",
       "   0.25574037432670593,\n",
       "   0.08859021216630936,\n",
       "   0.010399119928479195,\n",
       "   0.0011019075755029917,\n",
       "   4.5257038436830044e-05,\n",
       "   1.0214106396233547e-06],\n",
       "  'max_broken': 2,\n",
       "  'tree_depth': 2,\n",
       "  'prob_gen': 0.5391574501991272,\n",
       "  'form': 'C6NO2H12',\n",
       "  'base_mass': 130.086803624,\n",
       "  'frag_hs': 12,\n",
       "  'max_remove_hs': 2,\n",
       "  'max_add_hs': 2,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   2.3865690309321508e-05,\n",
       "   0.0010402933694422245,\n",
       "   0.00038476314512081444,\n",
       "   0.00018854009977076203,\n",
       "   0.0002523684233892709,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [124.039853432,\n",
       "   125.047678464,\n",
       "   126.055503496,\n",
       "   127.063328528,\n",
       "   128.07115356,\n",
       "   129.078978592,\n",
       "   130.086803624,\n",
       "   131.094628656,\n",
       "   132.102453688,\n",
       "   133.11027872,\n",
       "   134.118103752,\n",
       "   135.125928784,\n",
       "   136.133753816],\n",
       "  'mz_charge': [125.047129884,\n",
       "   126.054954916,\n",
       "   127.062779948,\n",
       "   128.07060498,\n",
       "   129.078430012,\n",
       "   130.086255044,\n",
       "   131.094080076,\n",
       "   132.101905108,\n",
       "   133.10973014,\n",
       "   134.117555172,\n",
       "   135.125380204,\n",
       "   136.133205236,\n",
       "   137.141030268]},\n",
       " '7292dcce67f7713f1a8bc5c54e1275051c30a79e6fe27824ffb9a49b8edcfab9': {'frag': 191,\n",
       "  'frag_hash': '7292dcce67f7713f1a8bc5c54e1275051c30a79e6fe27824ffb9a49b8edcfab9',\n",
       "  'score': 3,\n",
       "  'id': 18,\n",
       "  'parents': ['7a9a989abfe52b8bd1c0eb4aac2ca609a7fc2b87d4044172abd75a82713edb2b',\n",
       "   'a0e100d069277e8576c4ab93b8f698cd04100614564dd7c86eda8a1ea8cd5000',\n",
       "   '4168fe96420ece8340581fff043c40f761f027c904d76438100388b513dadadc',\n",
       "   '7ae75d02312eee384a8ea004ff7fcfd554b4d022f69b9e439386ca43764b4623'],\n",
       "  'atoms_pulled': [0, 1, 2, 7, 4, 3, 5],\n",
       "  'left_pred': [0.8950034976005554,\n",
       "   0.8950034976005554,\n",
       "   0.8950034976005554,\n",
       "   0.6831433773040771,\n",
       "   0.14520995318889618,\n",
       "   0.00011481375258881599,\n",
       "   3.6738663766300306e-05],\n",
       "  'max_broken': 2,\n",
       "  'tree_depth': 2,\n",
       "  'prob_gen': 0.5386231541633606,\n",
       "  'form': 'C6NH14',\n",
       "  'base_mass': 100.11262444799999,\n",
       "  'frag_hs': 14,\n",
       "  'max_remove_hs': 2,\n",
       "  'max_add_hs': 2,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.003122980473563075,\n",
       "   0.001897830399684608,\n",
       "   0.0024169073440134525,\n",
       "   0.0018405003938823938,\n",
       "   0.003647587960585952,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [94.065674256,\n",
       "   95.073499288,\n",
       "   96.08132432,\n",
       "   97.08914935199999,\n",
       "   98.09697438399999,\n",
       "   99.10479941599999,\n",
       "   100.11262444799999,\n",
       "   101.12044947999999,\n",
       "   102.12827451199999,\n",
       "   103.13609954399999,\n",
       "   104.14392457599999,\n",
       "   105.15174960799999,\n",
       "   106.15957463999999],\n",
       "  'mz_charge': [95.072950708,\n",
       "   96.08077573999999,\n",
       "   97.08860077199999,\n",
       "   98.09642580399999,\n",
       "   99.10425083599999,\n",
       "   100.11207586799999,\n",
       "   101.11990089999999,\n",
       "   102.12772593199999,\n",
       "   103.13555096399999,\n",
       "   104.14337599599999,\n",
       "   105.15120102799999,\n",
       "   106.15902605999999,\n",
       "   107.16685109199999]},\n",
       " 'a0e100d069277e8576c4ab93b8f698cd04100614564dd7c86eda8a1ea8cd5000': {'frag': 1791,\n",
       "  'frag_hash': 'a0e100d069277e8576c4ab93b8f698cd04100614564dd7c86eda8a1ea8cd5000',\n",
       "  'score': 1,\n",
       "  'id': 4,\n",
       "  'parents': ['1d5950a40bb7a53837637d1113896ecca4f5145cbb5add027775fc0a1740c27b'],\n",
       "  'atoms_pulled': [7, 10, 0, 1, 2, 6, 3, 4, 9, 5],\n",
       "  'left_pred': [0.9281997680664062,\n",
       "   0.8548129796981812,\n",
       "   0.745449423789978,\n",
       "   0.745449423789978,\n",
       "   0.745449423789978,\n",
       "   0.6687957048416138,\n",
       "   0.34040164947509766,\n",
       "   0.07350188493728638,\n",
       "   0.025396225973963737,\n",
       "   1.3082330042379908e-05],\n",
       "  'max_broken': 1,\n",
       "  'tree_depth': 1,\n",
       "  'prob_gen': 0.49200230836868286,\n",
       "  'form': 'C7NO2H15',\n",
       "  'base_mass': 145.11027872,\n",
       "  'frag_hs': 15,\n",
       "  'max_remove_hs': 1,\n",
       "  'max_add_hs': 1,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.005029015708714724,\n",
       "   0.0005984611925669014,\n",
       "   0.0003945311764255166,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [139.063328528,\n",
       "   140.07115356,\n",
       "   141.078978592,\n",
       "   142.086803624,\n",
       "   143.094628656,\n",
       "   144.102453688,\n",
       "   145.11027872,\n",
       "   146.118103752,\n",
       "   147.125928784,\n",
       "   148.133753816,\n",
       "   149.141578848,\n",
       "   150.14940388,\n",
       "   151.157228912],\n",
       "  'mz_charge': [140.07060498,\n",
       "   141.078430012,\n",
       "   142.086255044,\n",
       "   143.094080076,\n",
       "   144.101905108,\n",
       "   145.10973014,\n",
       "   146.117555172,\n",
       "   147.125380204,\n",
       "   148.133205236,\n",
       "   149.141030268,\n",
       "   150.1488553,\n",
       "   151.156680332,\n",
       "   152.164505364]},\n",
       " '9605c49bee9dad204e0cb82cc9acd574f82168c60d6ef8fec9f89ace079c3c72': {'frag': 190,\n",
       "  'frag_hash': '9605c49bee9dad204e0cb82cc9acd574f82168c60d6ef8fec9f89ace079c3c72',\n",
       "  'score': 4,\n",
       "  'id': 37,\n",
       "  'parents': ['7292dcce67f7713f1a8bc5c54e1275051c30a79e6fe27824ffb9a49b8edcfab9',\n",
       "   '7292dcce67f7713f1a8bc5c54e1275051c30a79e6fe27824ffb9a49b8edcfab9',\n",
       "   '7292dcce67f7713f1a8bc5c54e1275051c30a79e6fe27824ffb9a49b8edcfab9',\n",
       "   'b5689b6d734390611cd52d404d69724d25efffd8495161c5532341010cf9216c',\n",
       "   '85c975ccf4ed78a0573f89995edcaa9ea4d6584f427289d1ac82a1616a66a18f'],\n",
       "  'atoms_pulled': [],\n",
       "  'left_pred': [],\n",
       "  'max_broken': 3,\n",
       "  'tree_depth': 3,\n",
       "  'prob_gen': 0.48206961154937744,\n",
       "  'form': 'C5NH11',\n",
       "  'base_mass': 85.08914935199999,\n",
       "  'frag_hs': 11,\n",
       "  'max_remove_hs': 3,\n",
       "  'max_add_hs': 3,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.003824100363999605,\n",
       "   0.0020609234925359488,\n",
       "   0.0013301402796059847,\n",
       "   0.0001318423601333052,\n",
       "   1.0992648640240077e-05,\n",
       "   2.663492523424793e-05,\n",
       "   0.00010013812425313517,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [79.04219916,\n",
       "   80.050024192,\n",
       "   81.057849224,\n",
       "   82.065674256,\n",
       "   83.073499288,\n",
       "   84.08132432,\n",
       "   85.08914935199999,\n",
       "   86.09697438399999,\n",
       "   87.10479941599999,\n",
       "   88.11262444799999,\n",
       "   89.12044947999999,\n",
       "   90.12827451199999,\n",
       "   91.13609954399999],\n",
       "  'mz_charge': [80.049475612,\n",
       "   81.057300644,\n",
       "   82.065125676,\n",
       "   83.072950708,\n",
       "   84.08077573999999,\n",
       "   85.08860077199999,\n",
       "   86.09642580399999,\n",
       "   87.10425083599999,\n",
       "   88.11207586799999,\n",
       "   89.11990089999999,\n",
       "   90.12772593199999,\n",
       "   91.13555096399999,\n",
       "   92.14337599599999]},\n",
       " '45cbc4a6586e7ce79912d95ced30e3a4af11fa9b85722ca77b0c143666ee1905': {'frag': 56,\n",
       "  'frag_hash': '45cbc4a6586e7ce79912d95ced30e3a4af11fa9b85722ca77b0c143666ee1905',\n",
       "  'score': 4,\n",
       "  'id': 38,\n",
       "  'parents': ['7292dcce67f7713f1a8bc5c54e1275051c30a79e6fe27824ffb9a49b8edcfab9',\n",
       "   'ae71b8047ca77d099ab55d8c7350a8f6478a74faff5799b9f08a36b77ff8c241',\n",
       "   '15cd818acd9ad5f480fb5a61cf3da27a8119435aafc0b233b55d9c7eaa4aefde'],\n",
       "  'atoms_pulled': [],\n",
       "  'left_pred': [],\n",
       "  'max_broken': 3,\n",
       "  'tree_depth': 3,\n",
       "  'prob_gen': 0.36795684695243835,\n",
       "  'form': 'C3H5',\n",
       "  'base_mass': 41.03912516,\n",
       "  'frag_hs': 5,\n",
       "  'max_remove_hs': 3,\n",
       "  'max_add_hs': 3,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0015739939408376813,\n",
       "   0.0023443165700882673,\n",
       "   0.007831824012100697,\n",
       "   0.0017062759725376964,\n",
       "   4.936279947287403e-05,\n",
       "   2.726412276388146e-05,\n",
       "   0.0004250261699780822,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [34.992174968,\n",
       "   36.0,\n",
       "   37.007825032,\n",
       "   38.015650064,\n",
       "   39.023475096,\n",
       "   40.031300128,\n",
       "   41.03912516,\n",
       "   42.046950192,\n",
       "   43.054775224,\n",
       "   44.062600255999996,\n",
       "   45.070425287999996,\n",
       "   46.078250319999995,\n",
       "   47.086075351999995],\n",
       "  'mz_charge': [35.99945142,\n",
       "   37.007276452,\n",
       "   38.015101484,\n",
       "   39.022926516,\n",
       "   40.030751548,\n",
       "   41.03857658,\n",
       "   42.046401612,\n",
       "   43.054226643999996,\n",
       "   44.062051675999996,\n",
       "   45.069876707999995,\n",
       "   46.077701739999995,\n",
       "   47.085526771999994,\n",
       "   48.093351803999994]},\n",
       " '85c975ccf4ed78a0573f89995edcaa9ea4d6584f427289d1ac82a1616a66a18f': {'frag': 1790,\n",
       "  'frag_hash': '85c975ccf4ed78a0573f89995edcaa9ea4d6584f427289d1ac82a1616a66a18f',\n",
       "  'score': 2,\n",
       "  'id': 19,\n",
       "  'parents': ['a0e100d069277e8576c4ab93b8f698cd04100614564dd7c86eda8a1ea8cd5000',\n",
       "   'a0e100d069277e8576c4ab93b8f698cd04100614564dd7c86eda8a1ea8cd5000',\n",
       "   'a0e100d069277e8576c4ab93b8f698cd04100614564dd7c86eda8a1ea8cd5000',\n",
       "   '70bc493e2706b2379c79e12e9683cf41aaae08f02b8d3a4238029d3de0ea9f04'],\n",
       "  'atoms_pulled': [10, 1, 2, 6, 7, 3, 9, 4, 5],\n",
       "  'left_pred': [0.5257261395454407,\n",
       "   0.5219318270683289,\n",
       "   0.5219318270683289,\n",
       "   0.4004017412662506,\n",
       "   0.3233269453048706,\n",
       "   0.062092315405607224,\n",
       "   0.02518409863114357,\n",
       "   0.00402080686762929,\n",
       "   5.937203582107031e-07],\n",
       "  'max_broken': 2,\n",
       "  'tree_depth': 2,\n",
       "  'prob_gen': 0.36676284670829773,\n",
       "  'form': 'C6NO2H12',\n",
       "  'base_mass': 130.086803624,\n",
       "  'frag_hs': 12,\n",
       "  'max_remove_hs': 2,\n",
       "  'max_add_hs': 2,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   3.890684456564486e-05,\n",
       "   0.0014179664431139827,\n",
       "   0.0007613591733388603,\n",
       "   0.00045630516251549125,\n",
       "   0.0010926560498774052,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [124.039853432,\n",
       "   125.047678464,\n",
       "   126.055503496,\n",
       "   127.063328528,\n",
       "   128.07115356,\n",
       "   129.078978592,\n",
       "   130.086803624,\n",
       "   131.094628656,\n",
       "   132.102453688,\n",
       "   133.11027872,\n",
       "   134.118103752,\n",
       "   135.125928784,\n",
       "   136.133753816],\n",
       "  'mz_charge': [125.047129884,\n",
       "   126.054954916,\n",
       "   127.062779948,\n",
       "   128.07060498,\n",
       "   129.078430012,\n",
       "   130.086255044,\n",
       "   131.094080076,\n",
       "   132.101905108,\n",
       "   133.10973014,\n",
       "   134.117555172,\n",
       "   135.125380204,\n",
       "   136.133205236,\n",
       "   137.141030268]},\n",
       " '9d82a0255e8438708e6819e419943f6216b8e14bac2c792c1ba87076dbe44427': {'frag': 766,\n",
       "  'frag_hash': '9d82a0255e8438708e6819e419943f6216b8e14bac2c792c1ba87076dbe44427',\n",
       "  'score': 3,\n",
       "  'id': 39,\n",
       "  'parents': ['0e5818a72bab69a9f809ddaa971cd543ff75d76fe913dffb305552bbe9ece22c',\n",
       "   '4168fe96420ece8340581fff043c40f761f027c904d76438100388b513dadadc',\n",
       "   '4168fe96420ece8340581fff043c40f761f027c904d76438100388b513dadadc',\n",
       "   '4168fe96420ece8340581fff043c40f761f027c904d76438100388b513dadadc',\n",
       "   '85c975ccf4ed78a0573f89995edcaa9ea4d6584f427289d1ac82a1616a66a18f'],\n",
       "  'atoms_pulled': [],\n",
       "  'left_pred': [],\n",
       "  'max_broken': 3,\n",
       "  'tree_depth': 3,\n",
       "  'prob_gen': 0.35037320852279663,\n",
       "  'form': 'C6NOH11',\n",
       "  'base_mass': 113.084063972,\n",
       "  'frag_hs': 11,\n",
       "  'max_remove_hs': 3,\n",
       "  'max_add_hs': 3,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.00022528987028636038,\n",
       "   0.000235269486438483,\n",
       "   0.0005461252294480801,\n",
       "   0.0002814396866597235,\n",
       "   6.920138548593968e-05,\n",
       "   0.000328228430589661,\n",
       "   7.098250353010371e-05,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [107.03711378,\n",
       "   108.044938812,\n",
       "   109.052763844,\n",
       "   110.060588876,\n",
       "   111.068413908,\n",
       "   112.07623894,\n",
       "   113.084063972,\n",
       "   114.091889004,\n",
       "   115.099714036,\n",
       "   116.107539068,\n",
       "   117.1153641,\n",
       "   118.123189132,\n",
       "   119.13101416399999],\n",
       "  'mz_charge': [108.044390232,\n",
       "   109.052215264,\n",
       "   110.060040296,\n",
       "   111.067865328,\n",
       "   112.07569036,\n",
       "   113.083515392,\n",
       "   114.091340424,\n",
       "   115.099165456,\n",
       "   116.106990488,\n",
       "   117.11481552,\n",
       "   118.122640552,\n",
       "   119.13046558399999,\n",
       "   120.13829061599999]},\n",
       " '8f252d273e7b489fb75b631ec7d98c2b578504bba768cab7f151c670bb90645e': {'frag': 135,\n",
       "  'frag_hash': '8f252d273e7b489fb75b631ec7d98c2b578504bba768cab7f151c670bb90645e',\n",
       "  'score': 1,\n",
       "  'id': 9,\n",
       "  'parents': ['1d5950a40bb7a53837637d1113896ecca4f5145cbb5add027775fc0a1740c27b',\n",
       "   'c8dcbbbdd27a03202edb9fd67160564fabec9fc56dbbb00651798d1d915c8bc3',\n",
       "   'a0e100d069277e8576c4ab93b8f698cd04100614564dd7c86eda8a1ea8cd5000',\n",
       "   '7a9a989abfe52b8bd1c0eb4aac2ca609a7fc2b87d4044172abd75a82713edb2b',\n",
       "   '70bc493e2706b2379c79e12e9683cf41aaae08f02b8d3a4238029d3de0ea9f04',\n",
       "   '234db42e13ad06299c13eefa4499c4c32a3dd9cb18a054bac4a3a2c97c4d2449',\n",
       "   '17db8521c8db2384f13a90b65b28929e84aaa5abc7bcbdaea76b28a11deaa147',\n",
       "   'f7d1e46ab3fded663e3d3c4fa70ef1213ed6470904ba2920a1661c4d879f0bf3',\n",
       "   'f7d1e46ab3fded663e3d3c4fa70ef1213ed6470904ba2920a1661c4d879f0bf3',\n",
       "   'f7d1e46ab3fded663e3d3c4fa70ef1213ed6470904ba2920a1661c4d879f0bf3',\n",
       "   'f7d1e46ab3fded663e3d3c4fa70ef1213ed6470904ba2920a1661c4d879f0bf3',\n",
       "   '4168fe96420ece8340581fff043c40f761f027c904d76438100388b513dadadc',\n",
       "   '7292dcce67f7713f1a8bc5c54e1275051c30a79e6fe27824ffb9a49b8edcfab9',\n",
       "   '1e78662a044c4bdf560e8a3d4620a3627dd2e846127a8e8bb86642de65f070e2',\n",
       "   '7ae75d02312eee384a8ea004ff7fcfd554b4d022f69b9e439386ca43764b4623',\n",
       "   '0e5818a72bab69a9f809ddaa971cd543ff75d76fe913dffb305552bbe9ece22c',\n",
       "   '912e962db5011988379163fd109b7b7d759641f330c764b3c8ee18a2a83f33e9',\n",
       "   '94667eb97eca20bb8fe6cce5fcd638a87eea5b5ad4db1e45766228bf933db91b',\n",
       "   'b5689b6d734390611cd52d404d69724d25efffd8495161c5532341010cf9216c',\n",
       "   '77c612658d9c1394c61f30180110764f6e37b5b6b3609c15454df4effcf2a493',\n",
       "   '85c975ccf4ed78a0573f89995edcaa9ea4d6584f427289d1ac82a1616a66a18f'],\n",
       "  'atoms_pulled': [0, 1, 2, 7],\n",
       "  'left_pred': [0.386257529258728,\n",
       "   0.386257529258728,\n",
       "   0.386257529258728,\n",
       "   0.007616004440933466],\n",
       "  'max_broken': 1,\n",
       "  'tree_depth': 1,\n",
       "  'prob_gen': 0.3158918023109436,\n",
       "  'form': 'C3NH9',\n",
       "  'base_mass': 59.073499288,\n",
       "  'frag_hs': 9,\n",
       "  'max_remove_hs': 1,\n",
       "  'max_add_hs': 1,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0054328544065356255,\n",
       "   0.6726864576339722,\n",
       "   0.022540157660841942,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [53.026549096000004,\n",
       "   54.034374128,\n",
       "   55.04219916,\n",
       "   56.050024192,\n",
       "   57.057849224,\n",
       "   58.065674256,\n",
       "   59.073499288,\n",
       "   60.08132432,\n",
       "   61.089149352,\n",
       "   62.096974384,\n",
       "   63.104799416,\n",
       "   64.112624448,\n",
       "   65.12044948],\n",
       "  'mz_charge': [54.033825548,\n",
       "   55.04165058,\n",
       "   56.049475612,\n",
       "   57.057300644,\n",
       "   58.065125676,\n",
       "   59.072950708,\n",
       "   60.08077574,\n",
       "   61.088600772,\n",
       "   62.096425804,\n",
       "   63.104250836,\n",
       "   64.112075868,\n",
       "   65.1199009,\n",
       "   66.127725932]},\n",
       " '02da265c9b7178dc46a94fb6b6b4bd6678aa05d7408923bea6630c06fb38b605': {'frag': 872,\n",
       "  'frag_hash': '02da265c9b7178dc46a94fb6b6b4bd6678aa05d7408923bea6630c06fb38b605',\n",
       "  'score': 3,\n",
       "  'id': 20,\n",
       "  'parents': ['c8dcbbbdd27a03202edb9fd67160564fabec9fc56dbbb00651798d1d915c8bc3',\n",
       "   'ed96516a9b489caa62f2fd57414d6a9244f739bbf32d68e57ca6be8af1cb8ca4',\n",
       "   '0e5818a72bab69a9f809ddaa971cd543ff75d76fe913dffb305552bbe9ece22c',\n",
       "   'd26812b1b6d202c627808035a74f50f90949d31a4aae98f4d90dd58572d4604b'],\n",
       "  'atoms_pulled': [8, 9, 3, 5, 6],\n",
       "  'left_pred': [0.8565141558647156,\n",
       "   0.1330285370349884,\n",
       "   8.288828325930808e-07,\n",
       "   8.879641910652936e-08,\n",
       "   3.762725597766803e-08],\n",
       "  'max_broken': 2,\n",
       "  'tree_depth': 2,\n",
       "  'prob_gen': 0.3158918023109436,\n",
       "  'form': 'C3O2H4',\n",
       "  'base_mass': 72.021129368,\n",
       "  'frag_hs': 4,\n",
       "  'max_remove_hs': 2,\n",
       "  'max_add_hs': 2,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0005903426790609956,\n",
       "   0.0018849882762879133,\n",
       "   0.00024114150437526405,\n",
       "   8.09378907433711e-05,\n",
       "   0.00024984104675240815,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [65.974179176,\n",
       "   66.982004208,\n",
       "   67.98982924,\n",
       "   68.997654272,\n",
       "   70.005479304,\n",
       "   71.013304336,\n",
       "   72.021129368,\n",
       "   73.0289544,\n",
       "   74.036779432,\n",
       "   75.044604464,\n",
       "   76.052429496,\n",
       "   77.060254528,\n",
       "   78.06807956],\n",
       "  'mz_charge': [66.981455628,\n",
       "   67.98928066,\n",
       "   68.997105692,\n",
       "   70.004930724,\n",
       "   71.012755756,\n",
       "   72.020580788,\n",
       "   73.02840582,\n",
       "   74.036230852,\n",
       "   75.044055884,\n",
       "   76.051880916,\n",
       "   77.059705948,\n",
       "   78.06753098,\n",
       "   79.075356012]},\n",
       " '70bc493e2706b2379c79e12e9683cf41aaae08f02b8d3a4238029d3de0ea9f04': {'frag': 2046,\n",
       "  'frag_hash': '70bc493e2706b2379c79e12e9683cf41aaae08f02b8d3a4238029d3de0ea9f04',\n",
       "  'score': 1,\n",
       "  'id': 5,\n",
       "  'parents': ['1d5950a40bb7a53837637d1113896ecca4f5145cbb5add027775fc0a1740c27b',\n",
       "   '1d5950a40bb7a53837637d1113896ecca4f5145cbb5add027775fc0a1740c27b',\n",
       "   '1d5950a40bb7a53837637d1113896ecca4f5145cbb5add027775fc0a1740c27b'],\n",
       "  'atoms_pulled': [10, 7, 8, 1, 2, 6, 4, 3, 5, 9],\n",
       "  'left_pred': [0.5042211413383484,\n",
       "   0.496978223323822,\n",
       "   0.30810782313346863,\n",
       "   0.23131130635738373,\n",
       "   0.23131130635738373,\n",
       "   0.21990340948104858,\n",
       "   0.07471349090337753,\n",
       "   0.0746895894408226,\n",
       "   0.05295252054929733,\n",
       "   0.006640798412263393],\n",
       "  'max_broken': 1,\n",
       "  'tree_depth': 1,\n",
       "  'prob_gen': 0.2843877077102661,\n",
       "  'form': 'C6NO3H13',\n",
       "  'base_mass': 147.089543276,\n",
       "  'frag_hs': 13,\n",
       "  'max_remove_hs': 1,\n",
       "  'max_add_hs': 1,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.002215130953118205,\n",
       "   0.0015097693540155888,\n",
       "   0.003433661302551627,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [141.042593084,\n",
       "   142.050418116,\n",
       "   143.058243148,\n",
       "   144.06606818,\n",
       "   145.073893212,\n",
       "   146.081718244,\n",
       "   147.089543276,\n",
       "   148.097368308,\n",
       "   149.10519334,\n",
       "   150.113018372,\n",
       "   151.120843404,\n",
       "   152.128668436,\n",
       "   153.136493468],\n",
       "  'mz_charge': [142.04986953600002,\n",
       "   143.05769456800002,\n",
       "   144.06551960000002,\n",
       "   145.07334463200002,\n",
       "   146.08116966400002,\n",
       "   147.08899469600001,\n",
       "   148.096819728,\n",
       "   149.10464476,\n",
       "   150.112469792,\n",
       "   151.120294824,\n",
       "   152.128119856,\n",
       "   153.135944888,\n",
       "   154.14376992]},\n",
       " 'c8069143591304abcf07c93b3adc40ecdf9a75fafb7388b2e2227992ec570fa0': {'frag': 616,\n",
       "  'frag_hash': 'c8069143591304abcf07c93b3adc40ecdf9a75fafb7388b2e2227992ec570fa0',\n",
       "  'score': 4,\n",
       "  'id': 40,\n",
       "  'parents': ['02da265c9b7178dc46a94fb6b6b4bd6678aa05d7408923bea6630c06fb38b605',\n",
       "   '4168fe96420ece8340581fff043c40f761f027c904d76438100388b513dadadc',\n",
       "   '08705a6664df7d4c3adff2c8d1440efd045388af8577c975b8d0f925a71f93fe'],\n",
       "  'atoms_pulled': [],\n",
       "  'left_pred': [],\n",
       "  'max_broken': 3,\n",
       "  'tree_depth': 3,\n",
       "  'prob_gen': 0.27056580781936646,\n",
       "  'form': 'C3OH3',\n",
       "  'base_mass': 55.018389716,\n",
       "  'frag_hs': 3,\n",
       "  'max_remove_hs': 3,\n",
       "  'max_add_hs': 3,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0036832483019679785,\n",
       "   0.0033310975413769484,\n",
       "   0.010372883640229702,\n",
       "   0.0036542615853250027,\n",
       "   0.00039404083508998156,\n",
       "   0.00025537554756738245,\n",
       "   0.00020242326718289405,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [48.971439524000004,\n",
       "   49.979264556000004,\n",
       "   50.987089588,\n",
       "   51.99491462,\n",
       "   53.002739652,\n",
       "   54.010564684,\n",
       "   55.018389716,\n",
       "   56.026214748,\n",
       "   57.03403978,\n",
       "   58.041864812,\n",
       "   59.049689844,\n",
       "   60.057514876,\n",
       "   61.065339908],\n",
       "  'mz_charge': [49.978715976000004,\n",
       "   50.986541008,\n",
       "   51.99436604,\n",
       "   53.002191072,\n",
       "   54.010016104,\n",
       "   55.017841136,\n",
       "   56.025666168,\n",
       "   57.0334912,\n",
       "   58.041316232,\n",
       "   59.049141264,\n",
       "   60.056966296,\n",
       "   61.064791328,\n",
       "   62.07261636]},\n",
       " 'b5689b6d734390611cd52d404d69724d25efffd8495161c5532341010cf9216c': {'frag': 446,\n",
       "  'frag_hash': 'b5689b6d734390611cd52d404d69724d25efffd8495161c5532341010cf9216c',\n",
       "  'score': 3,\n",
       "  'id': 21,\n",
       "  'parents': ['7a9a989abfe52b8bd1c0eb4aac2ca609a7fc2b87d4044172abd75a82713edb2b',\n",
       "   '7a9a989abfe52b8bd1c0eb4aac2ca609a7fc2b87d4044172abd75a82713edb2b',\n",
       "   '7a9a989abfe52b8bd1c0eb4aac2ca609a7fc2b87d4044172abd75a82713edb2b',\n",
       "   '70bc493e2706b2379c79e12e9683cf41aaae08f02b8d3a4238029d3de0ea9f04',\n",
       "   '0e5818a72bab69a9f809ddaa971cd543ff75d76fe913dffb305552bbe9ece22c',\n",
       "   '912e962db5011988379163fd109b7b7d759641f330c764b3c8ee18a2a83f33e9'],\n",
       "  'atoms_pulled': [8, 1, 2, 7, 4, 5, 3],\n",
       "  'left_pred': [0.7404522895812988,\n",
       "   0.5141998529434204,\n",
       "   0.5141998529434204,\n",
       "   0.11064013838768005,\n",
       "   0.0006851743091829121,\n",
       "   5.4043390264268965e-05,\n",
       "   2.7306909942126367e-06],\n",
       "  'max_broken': 2,\n",
       "  'tree_depth': 2,\n",
       "  'prob_gen': 0.2626938819885254,\n",
       "  'form': 'C5NOH12',\n",
       "  'base_mass': 102.091889004,\n",
       "  'frag_hs': 12,\n",
       "  'max_remove_hs': 2,\n",
       "  'max_add_hs': 2,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0007391138933598995,\n",
       "   0.003613583045080304,\n",
       "   0.004263677168637514,\n",
       "   0.00024179955653380603,\n",
       "   0.001028599333949387,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [96.044938812,\n",
       "   97.052763844,\n",
       "   98.060588876,\n",
       "   99.068413908,\n",
       "   100.07623894,\n",
       "   101.084063972,\n",
       "   102.091889004,\n",
       "   103.099714036,\n",
       "   104.107539068,\n",
       "   105.1153641,\n",
       "   106.123189132,\n",
       "   107.13101416399999,\n",
       "   108.13883919599999],\n",
       "  'mz_charge': [97.052215264,\n",
       "   98.060040296,\n",
       "   99.067865328,\n",
       "   100.07569036,\n",
       "   101.083515392,\n",
       "   102.091340424,\n",
       "   103.099165456,\n",
       "   104.106990488,\n",
       "   105.11481552,\n",
       "   106.122640552,\n",
       "   107.13046558399999,\n",
       "   108.13829061599999,\n",
       "   109.14611564799999]},\n",
       " '17db8521c8db2384f13a90b65b28929e84aaa5abc7bcbdaea76b28a11deaa147': {'frag': 439,\n",
       "  'frag_hash': '17db8521c8db2384f13a90b65b28929e84aaa5abc7bcbdaea76b28a11deaa147',\n",
       "  'score': 2,\n",
       "  'id': 6,\n",
       "  'parents': ['1d5950a40bb7a53837637d1113896ecca4f5145cbb5add027775fc0a1740c27b',\n",
       "   'c8dcbbbdd27a03202edb9fd67160564fabec9fc56dbbb00651798d1d915c8bc3',\n",
       "   '7a9a989abfe52b8bd1c0eb4aac2ca609a7fc2b87d4044172abd75a82713edb2b',\n",
       "   '234db42e13ad06299c13eefa4499c4c32a3dd9cb18a054bac4a3a2c97c4d2449',\n",
       "   '1e78662a044c4bdf560e8a3d4620a3627dd2e846127a8e8bb86642de65f070e2'],\n",
       "  'atoms_pulled': [0, 1, 2, 8, 7, 4, 5],\n",
       "  'left_pred': [0.8091226816177368,\n",
       "   0.8091226816177368,\n",
       "   0.8091226816177368,\n",
       "   0.6641951203346252,\n",
       "   0.2555491328239441,\n",
       "   0.01754908263683319,\n",
       "   0.0051697539165616035],\n",
       "  'max_broken': 1,\n",
       "  'tree_depth': 1,\n",
       "  'prob_gen': 0.20492412149906158,\n",
       "  'form': 'C5NOH13',\n",
       "  'base_mass': 103.099714036,\n",
       "  'frag_hs': 13,\n",
       "  'max_remove_hs': 1,\n",
       "  'max_add_hs': 1,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.08164368569850922,\n",
       "   0.004807326011359692,\n",
       "   0.0007980328518897295,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [97.052763844,\n",
       "   98.060588876,\n",
       "   99.068413908,\n",
       "   100.07623894,\n",
       "   101.084063972,\n",
       "   102.091889004,\n",
       "   103.099714036,\n",
       "   104.107539068,\n",
       "   105.1153641,\n",
       "   106.123189132,\n",
       "   107.13101416399999,\n",
       "   108.13883919599999,\n",
       "   109.14666422799999],\n",
       "  'mz_charge': [98.060040296,\n",
       "   99.067865328,\n",
       "   100.07569036,\n",
       "   101.083515392,\n",
       "   102.091340424,\n",
       "   103.099165456,\n",
       "   104.106990488,\n",
       "   105.11481552,\n",
       "   106.122640552,\n",
       "   107.13046558399999,\n",
       "   108.13829061599999,\n",
       "   109.14611564799999,\n",
       "   110.15394067999999]},\n",
       " '88d5f572dfd3ff2931034a21439d6bc372adfa32759c9d0f986c2384e59c5c0f': {'frag': 1600,\n",
       "  'frag_hash': '88d5f572dfd3ff2931034a21439d6bc372adfa32759c9d0f986c2384e59c5c0f',\n",
       "  'score': 2,\n",
       "  'id': 7,\n",
       "  'parents': ['1d5950a40bb7a53837637d1113896ecca4f5145cbb5add027775fc0a1740c27b',\n",
       "   'a0e100d069277e8576c4ab93b8f698cd04100614564dd7c86eda8a1ea8cd5000',\n",
       "   '70bc493e2706b2379c79e12e9683cf41aaae08f02b8d3a4238029d3de0ea9f04',\n",
       "   '74a28b2eb10efab52a55f9f1410d4ef4f3e975f6a16f9d271c4b7a7a1bba946d',\n",
       "   'ed96516a9b489caa62f2fd57414d6a9244f739bbf32d68e57ca6be8af1cb8ca4',\n",
       "   '71a52aa85d24327e7ff5b0a4696278d70b5ee3a15fbf93a47b728865dcfce2cd',\n",
       "   '85c975ccf4ed78a0573f89995edcaa9ea4d6584f427289d1ac82a1616a66a18f',\n",
       "   'e2c7043eb9f641b60ee19c7d67917d21349021566fbd9690dcd9d3d15ffe7da7',\n",
       "   'ae71b8047ca77d099ab55d8c7350a8f6478a74faff5799b9f08a36b77ff8c241',\n",
       "   '08705a6664df7d4c3adff2c8d1440efd045388af8577c975b8d0f925a71f93fe'],\n",
       "  'atoms_pulled': [10, 9, 6],\n",
       "  'left_pred': [0.0012987741502001882,\n",
       "   8.358617378689814e-06,\n",
       "   2.111230969603639e-06],\n",
       "  'max_broken': 1,\n",
       "  'tree_depth': 1,\n",
       "  'prob_gen': 0.20492412149906158,\n",
       "  'form': 'CO2H',\n",
       "  'base_mass': 44.997654272,\n",
       "  'frag_hs': 1,\n",
       "  'max_remove_hs': 1,\n",
       "  'max_add_hs': 1,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0017401088261976838,\n",
       "   0.002877145307138562,\n",
       "   0.0005592933157458901,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [38.95070408,\n",
       "   39.958529112,\n",
       "   40.966354144,\n",
       "   41.974179176,\n",
       "   42.982004208,\n",
       "   43.98982924,\n",
       "   44.997654272,\n",
       "   46.005479304,\n",
       "   47.013304336,\n",
       "   48.021129368,\n",
       "   49.028954399999996,\n",
       "   50.036779431999996,\n",
       "   51.044604463999995],\n",
       "  'mz_charge': [39.957980532,\n",
       "   40.965805564,\n",
       "   41.973630596,\n",
       "   42.981455628,\n",
       "   43.98928066,\n",
       "   44.997105692,\n",
       "   46.004930724,\n",
       "   47.012755756,\n",
       "   48.020580788,\n",
       "   49.028405819999996,\n",
       "   50.036230851999996,\n",
       "   51.044055883999995,\n",
       "   52.051880915999995]},\n",
       " 'ab0b6435c32cfa70bb56d59c51ea1385022d18a1266602f67479d4f2a3ea58f9': {'frag': 1788,\n",
       "  'frag_hash': 'ab0b6435c32cfa70bb56d59c51ea1385022d18a1266602f67479d4f2a3ea58f9',\n",
       "  'score': 3,\n",
       "  'id': 41,\n",
       "  'parents': ['85c975ccf4ed78a0573f89995edcaa9ea4d6584f427289d1ac82a1616a66a18f',\n",
       "   '85c975ccf4ed78a0573f89995edcaa9ea4d6584f427289d1ac82a1616a66a18f',\n",
       "   'e2c7043eb9f641b60ee19c7d67917d21349021566fbd9690dcd9d3d15ffe7da7'],\n",
       "  'atoms_pulled': [],\n",
       "  'left_pred': [],\n",
       "  'max_broken': 3,\n",
       "  'tree_depth': 3,\n",
       "  'prob_gen': 0.19142520427703857,\n",
       "  'form': 'C5NO2H9',\n",
       "  'base_mass': 115.063328528,\n",
       "  'frag_hs': 9,\n",
       "  'max_remove_hs': 3,\n",
       "  'max_add_hs': 3,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   7.272777293110266e-05,\n",
       "   0.00024271330039482564,\n",
       "   0.00017689334345050156,\n",
       "   0.00020211664377711713,\n",
       "   1.4090354852669407e-05,\n",
       "   0.0009550948743708432,\n",
       "   0.0005352952284738421,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [109.016378336,\n",
       "   110.024203368,\n",
       "   111.0320284,\n",
       "   112.039853432,\n",
       "   113.047678464,\n",
       "   114.055503496,\n",
       "   115.063328528,\n",
       "   116.07115356,\n",
       "   117.078978592,\n",
       "   118.086803624,\n",
       "   119.094628656,\n",
       "   120.102453688,\n",
       "   121.11027872],\n",
       "  'mz_charge': [110.023654788,\n",
       "   111.03147982,\n",
       "   112.039304852,\n",
       "   113.047129884,\n",
       "   114.054954916,\n",
       "   115.062779948,\n",
       "   116.07060498,\n",
       "   117.078430012,\n",
       "   118.086255044,\n",
       "   119.094080076,\n",
       "   120.101905108,\n",
       "   121.10973014,\n",
       "   122.117555172]},\n",
       " '77c612658d9c1394c61f30180110764f6e37b5b6b3609c15454df4effcf2a493': {'frag': 183,\n",
       "  'frag_hash': '77c612658d9c1394c61f30180110764f6e37b5b6b3609c15454df4effcf2a493',\n",
       "  'score': 3,\n",
       "  'id': 22,\n",
       "  'parents': ['a0e100d069277e8576c4ab93b8f698cd04100614564dd7c86eda8a1ea8cd5000',\n",
       "   '17db8521c8db2384f13a90b65b28929e84aaa5abc7bcbdaea76b28a11deaa147',\n",
       "   '4168fe96420ece8340581fff043c40f761f027c904d76438100388b513dadadc',\n",
       "   '7292dcce67f7713f1a8bc5c54e1275051c30a79e6fe27824ffb9a49b8edcfab9',\n",
       "   '7ae75d02312eee384a8ea004ff7fcfd554b4d022f69b9e439386ca43764b4623'],\n",
       "  'atoms_pulled': [0, 1, 2, 7, 5, 4],\n",
       "  'left_pred': [0.679919958114624,\n",
       "   0.679919958114624,\n",
       "   0.679919958114624,\n",
       "   0.004505878780037165,\n",
       "   0.00010175589704886079,\n",
       "   5.754969970439561e-05],\n",
       "  'max_broken': 2,\n",
       "  'tree_depth': 2,\n",
       "  'prob_gen': 0.16747839748859406,\n",
       "  'form': 'C5NH12',\n",
       "  'base_mass': 86.09697438399999,\n",
       "  'frag_hs': 12,\n",
       "  'max_remove_hs': 2,\n",
       "  'max_add_hs': 2,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.8496012091636658,\n",
       "   0.08440703898668289,\n",
       "   0.003293207846581936,\n",
       "   0.0018474062671884894,\n",
       "   0.001507401349954307,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [80.050024192,\n",
       "   81.057849224,\n",
       "   82.065674256,\n",
       "   83.073499288,\n",
       "   84.08132432,\n",
       "   85.08914935199999,\n",
       "   86.09697438399999,\n",
       "   87.10479941599999,\n",
       "   88.11262444799999,\n",
       "   89.12044947999999,\n",
       "   90.12827451199999,\n",
       "   91.13609954399999,\n",
       "   92.14392457599999],\n",
       "  'mz_charge': [81.057300644,\n",
       "   82.065125676,\n",
       "   83.072950708,\n",
       "   84.08077573999999,\n",
       "   85.08860077199999,\n",
       "   86.09642580399999,\n",
       "   87.10425083599999,\n",
       "   88.11207586799999,\n",
       "   89.11990089999999,\n",
       "   90.12772593199999,\n",
       "   91.13555096399999,\n",
       "   92.14337599599999,\n",
       "   93.15120102799999]},\n",
       " '94667eb97eca20bb8fe6cce5fcd638a87eea5b5ad4db1e45766228bf933db91b': {'frag': 438,\n",
       "  'frag_hash': '94667eb97eca20bb8fe6cce5fcd638a87eea5b5ad4db1e45766228bf933db91b',\n",
       "  'score': 3,\n",
       "  'id': 23,\n",
       "  'parents': ['17db8521c8db2384f13a90b65b28929e84aaa5abc7bcbdaea76b28a11deaa147',\n",
       "   '17db8521c8db2384f13a90b65b28929e84aaa5abc7bcbdaea76b28a11deaa147',\n",
       "   '17db8521c8db2384f13a90b65b28929e84aaa5abc7bcbdaea76b28a11deaa147',\n",
       "   '70bc493e2706b2379c79e12e9683cf41aaae08f02b8d3a4238029d3de0ea9f04',\n",
       "   '912e962db5011988379163fd109b7b7d759641f330c764b3c8ee18a2a83f33e9',\n",
       "   '0e5818a72bab69a9f809ddaa971cd543ff75d76fe913dffb305552bbe9ece22c',\n",
       "   'b5689b6d734390611cd52d404d69724d25efffd8495161c5532341010cf9216c'],\n",
       "  'atoms_pulled': [1, 2, 8, 7, 5, 4],\n",
       "  'left_pred': [0.66452556848526,\n",
       "   0.66452556848526,\n",
       "   0.4372159540653229,\n",
       "   0.0013233110075816512,\n",
       "   0.00020579124975483865,\n",
       "   1.4154450582282152e-05],\n",
       "  'max_broken': 2,\n",
       "  'tree_depth': 2,\n",
       "  'prob_gen': 0.1658087521791458,\n",
       "  'form': 'C4NOH10',\n",
       "  'base_mass': 88.07623894,\n",
       "  'frag_hs': 10,\n",
       "  'max_remove_hs': 2,\n",
       "  'max_add_hs': 2,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0001232926588272676,\n",
       "   0.00024134424165822566,\n",
       "   0.00038240395952016115,\n",
       "   0.00024152445257641375,\n",
       "   0.0019036963349208236,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [82.029288748,\n",
       "   83.03711378,\n",
       "   84.044938812,\n",
       "   85.052763844,\n",
       "   86.060588876,\n",
       "   87.068413908,\n",
       "   88.07623894,\n",
       "   89.084063972,\n",
       "   90.091889004,\n",
       "   91.099714036,\n",
       "   92.107539068,\n",
       "   93.1153641,\n",
       "   94.123189132],\n",
       "  'mz_charge': [83.0365652,\n",
       "   84.044390232,\n",
       "   85.052215264,\n",
       "   86.060040296,\n",
       "   87.067865328,\n",
       "   88.07569036,\n",
       "   89.083515392,\n",
       "   90.091340424,\n",
       "   91.099165456,\n",
       "   92.106990488,\n",
       "   93.11481552,\n",
       "   94.122640552,\n",
       "   95.13046558399999]},\n",
       " '09454518d30f8db174fdae1bcf823683f51bc6fb11c3ea52eaa2e4232ce95ab3': {'frag': 1020,\n",
       "  'frag_hash': '09454518d30f8db174fdae1bcf823683f51bc6fb11c3ea52eaa2e4232ce95ab3',\n",
       "  'score': 3,\n",
       "  'id': 42,\n",
       "  'parents': ['0e5818a72bab69a9f809ddaa971cd543ff75d76fe913dffb305552bbe9ece22c',\n",
       "   '0e5818a72bab69a9f809ddaa971cd543ff75d76fe913dffb305552bbe9ece22c',\n",
       "   'e2c7043eb9f641b60ee19c7d67917d21349021566fbd9690dcd9d3d15ffe7da7'],\n",
       "  'atoms_pulled': [],\n",
       "  'left_pred': [],\n",
       "  'max_broken': 3,\n",
       "  'tree_depth': 3,\n",
       "  'prob_gen': 0.13788433372974396,\n",
       "  'form': 'C5NO2H9',\n",
       "  'base_mass': 115.063328528,\n",
       "  'frag_hs': 9,\n",
       "  'max_remove_hs': 3,\n",
       "  'max_add_hs': 3,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   8.645206253277138e-05,\n",
       "   0.00020323588978499174,\n",
       "   0.0001402633497491479,\n",
       "   0.0001748140639392659,\n",
       "   1.4404879948415328e-05,\n",
       "   0.0009682374657131732,\n",
       "   0.0008651273092254996,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [109.016378336,\n",
       "   110.024203368,\n",
       "   111.0320284,\n",
       "   112.039853432,\n",
       "   113.047678464,\n",
       "   114.055503496,\n",
       "   115.063328528,\n",
       "   116.07115356,\n",
       "   117.078978592,\n",
       "   118.086803624,\n",
       "   119.094628656,\n",
       "   120.102453688,\n",
       "   121.11027872],\n",
       "  'mz_charge': [110.023654788,\n",
       "   111.03147982,\n",
       "   112.039304852,\n",
       "   113.047129884,\n",
       "   114.054954916,\n",
       "   115.062779948,\n",
       "   116.07060498,\n",
       "   117.078430012,\n",
       "   118.086255044,\n",
       "   119.094080076,\n",
       "   120.101905108,\n",
       "   121.10973014,\n",
       "   122.117555172]},\n",
       " 'd60232938a2978ef389ea81e79b058195184335c4fdd08b4c4831b2421316a41': {'frag': 444,\n",
       "  'frag_hash': 'd60232938a2978ef389ea81e79b058195184335c4fdd08b4c4831b2421316a41',\n",
       "  'score': 4,\n",
       "  'id': 43,\n",
       "  'parents': ['b5689b6d734390611cd52d404d69724d25efffd8495161c5532341010cf9216c',\n",
       "   'b5689b6d734390611cd52d404d69724d25efffd8495161c5532341010cf9216c',\n",
       "   'e2c7043eb9f641b60ee19c7d67917d21349021566fbd9690dcd9d3d15ffe7da7'],\n",
       "  'atoms_pulled': [],\n",
       "  'left_pred': [],\n",
       "  'max_broken': 3,\n",
       "  'tree_depth': 3,\n",
       "  'prob_gen': 0.13507714867591858,\n",
       "  'form': 'C4NOH9',\n",
       "  'base_mass': 87.068413908,\n",
       "  'frag_hs': 9,\n",
       "  'max_remove_hs': 3,\n",
       "  'max_add_hs': 3,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0015649754786863923,\n",
       "   0.00029736149008385837,\n",
       "   0.00021066199406050146,\n",
       "   0.00019313246593810618,\n",
       "   7.105370605131611e-05,\n",
       "   0.0006875822436995804,\n",
       "   0.001613426604308188,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [81.021463716,\n",
       "   82.029288748,\n",
       "   83.03711378,\n",
       "   84.044938812,\n",
       "   85.052763844,\n",
       "   86.060588876,\n",
       "   87.068413908,\n",
       "   88.07623894,\n",
       "   89.084063972,\n",
       "   90.091889004,\n",
       "   91.099714036,\n",
       "   92.107539068,\n",
       "   93.1153641],\n",
       "  'mz_charge': [82.028740168,\n",
       "   83.0365652,\n",
       "   84.044390232,\n",
       "   85.052215264,\n",
       "   86.060040296,\n",
       "   87.067865328,\n",
       "   88.07569036,\n",
       "   89.083515392,\n",
       "   90.091340424,\n",
       "   91.099165456,\n",
       "   92.106990488,\n",
       "   93.11481552,\n",
       "   94.122640552]},\n",
       " '08b75e53613be7a18151f46c85f193d7eae661c0649d86eae80e08e6e960166e': {'frag': 182,\n",
       "  'frag_hash': '08b75e53613be7a18151f46c85f193d7eae661c0649d86eae80e08e6e960166e',\n",
       "  'score': 4,\n",
       "  'id': 44,\n",
       "  'parents': ['77c612658d9c1394c61f30180110764f6e37b5b6b3609c15454df4effcf2a493',\n",
       "   '77c612658d9c1394c61f30180110764f6e37b5b6b3609c15454df4effcf2a493',\n",
       "   '77c612658d9c1394c61f30180110764f6e37b5b6b3609c15454df4effcf2a493',\n",
       "   '94667eb97eca20bb8fe6cce5fcd638a87eea5b5ad4db1e45766228bf933db91b',\n",
       "   '85c975ccf4ed78a0573f89995edcaa9ea4d6584f427289d1ac82a1616a66a18f'],\n",
       "  'atoms_pulled': [],\n",
       "  'left_pred': [],\n",
       "  'max_broken': 3,\n",
       "  'tree_depth': 3,\n",
       "  'prob_gen': 0.11387190222740173,\n",
       "  'form': 'C4NH9',\n",
       "  'base_mass': 71.073499288,\n",
       "  'frag_hs': 9,\n",
       "  'max_remove_hs': 3,\n",
       "  'max_add_hs': 3,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.00017987695173360407,\n",
       "   0.0001235568488482386,\n",
       "   0.00037461420288309455,\n",
       "   0.00024245346139650792,\n",
       "   1.2870289538113866e-05,\n",
       "   7.906021346570924e-05,\n",
       "   0.00015716190682724118,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [65.026549096,\n",
       "   66.034374128,\n",
       "   67.04219916,\n",
       "   68.050024192,\n",
       "   69.057849224,\n",
       "   70.065674256,\n",
       "   71.073499288,\n",
       "   72.08132432,\n",
       "   73.08914935199999,\n",
       "   74.09697438399999,\n",
       "   75.10479941599999,\n",
       "   76.11262444799999,\n",
       "   77.12044947999999],\n",
       "  'mz_charge': [66.033825548,\n",
       "   67.04165058,\n",
       "   68.049475612,\n",
       "   69.057300644,\n",
       "   70.065125676,\n",
       "   71.072950708,\n",
       "   72.08077573999999,\n",
       "   73.08860077199999,\n",
       "   74.09642580399999,\n",
       "   75.10425083599999,\n",
       "   76.11207586799999,\n",
       "   77.11990089999999,\n",
       "   78.12772593199999]},\n",
       " 'ed96516a9b489caa62f2fd57414d6a9244f739bbf32d68e57ca6be8af1cb8ca4': {'frag': 1896,\n",
       "  'frag_hash': 'ed96516a9b489caa62f2fd57414d6a9244f739bbf32d68e57ca6be8af1cb8ca4',\n",
       "  'score': 2,\n",
       "  'id': 8,\n",
       "  'parents': ['1d5950a40bb7a53837637d1113896ecca4f5145cbb5add027775fc0a1740c27b',\n",
       "   '70bc493e2706b2379c79e12e9683cf41aaae08f02b8d3a4238029d3de0ea9f04',\n",
       "   '74a28b2eb10efab52a55f9f1410d4ef4f3e975f6a16f9d271c4b7a7a1bba946d',\n",
       "   'e2c7043eb9f641b60ee19c7d67917d21349021566fbd9690dcd9d3d15ffe7da7'],\n",
       "  'atoms_pulled': [8, 10, 9, 3, 6, 5],\n",
       "  'left_pred': [0.9398700594902039,\n",
       "   0.6130386590957642,\n",
       "   0.028058502823114395,\n",
       "   0.009460607543587685,\n",
       "   0.0022055914159864187,\n",
       "   1.840102777350694e-05],\n",
       "  'max_broken': 1,\n",
       "  'tree_depth': 1,\n",
       "  'prob_gen': 0.11244534701108932,\n",
       "  'form': 'C3O3H5',\n",
       "  'base_mass': 89.02386902,\n",
       "  'frag_hs': 5,\n",
       "  'max_remove_hs': 1,\n",
       "  'max_add_hs': 1,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.002482145093381405,\n",
       "   0.0020789315458387136,\n",
       "   0.0010593256447464228,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [82.97691882800001,\n",
       "   83.98474386000001,\n",
       "   84.99256889200001,\n",
       "   86.00039392400001,\n",
       "   87.00821895600001,\n",
       "   88.016043988,\n",
       "   89.02386902,\n",
       "   90.031694052,\n",
       "   91.039519084,\n",
       "   92.047344116,\n",
       "   93.055169148,\n",
       "   94.06299418,\n",
       "   95.070819212],\n",
       "  'mz_charge': [83.98419528000001,\n",
       "   84.99202031200001,\n",
       "   85.99984534400001,\n",
       "   87.00767037600001,\n",
       "   88.015495408,\n",
       "   89.02332044,\n",
       "   90.031145472,\n",
       "   91.038970504,\n",
       "   92.046795536,\n",
       "   93.054620568,\n",
       "   94.0624456,\n",
       "   95.070270632,\n",
       "   96.078095664]},\n",
       " '37274409f9fae26f02b43b60fe36c7febddd74685ce4f74e294371337f14801d': {'frag': 436,\n",
       "  'frag_hash': '37274409f9fae26f02b43b60fe36c7febddd74685ce4f74e294371337f14801d',\n",
       "  'score': 4,\n",
       "  'id': 45,\n",
       "  'parents': ['94667eb97eca20bb8fe6cce5fcd638a87eea5b5ad4db1e45766228bf933db91b',\n",
       "   '94667eb97eca20bb8fe6cce5fcd638a87eea5b5ad4db1e45766228bf933db91b',\n",
       "   'e2c7043eb9f641b60ee19c7d67917d21349021566fbd9690dcd9d3d15ffe7da7'],\n",
       "  'atoms_pulled': [],\n",
       "  'left_pred': [],\n",
       "  'max_broken': 3,\n",
       "  'tree_depth': 3,\n",
       "  'prob_gen': 0.11018415540456772,\n",
       "  'form': 'C3NOH7',\n",
       "  'base_mass': 73.052763844,\n",
       "  'frag_hs': 7,\n",
       "  'max_remove_hs': 3,\n",
       "  'max_add_hs': 3,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   5.988845805404708e-05,\n",
       "   0.00010116941120941192,\n",
       "   3.470906085567549e-05,\n",
       "   9.150204277830198e-05,\n",
       "   1.3404184755927417e-05,\n",
       "   0.0009971889667212963,\n",
       "   0.0017797333421185613,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [67.005813652,\n",
       "   68.013638684,\n",
       "   69.021463716,\n",
       "   70.029288748,\n",
       "   71.03711378,\n",
       "   72.044938812,\n",
       "   73.052763844,\n",
       "   74.060588876,\n",
       "   75.068413908,\n",
       "   76.07623894,\n",
       "   77.084063972,\n",
       "   78.091889004,\n",
       "   79.099714036],\n",
       "  'mz_charge': [68.013090104,\n",
       "   69.020915136,\n",
       "   70.028740168,\n",
       "   71.0365652,\n",
       "   72.044390232,\n",
       "   73.052215264,\n",
       "   74.060040296,\n",
       "   75.067865328,\n",
       "   76.07569036,\n",
       "   77.083515392,\n",
       "   78.091340424,\n",
       "   79.099165456,\n",
       "   80.106990488]},\n",
       " '08705a6664df7d4c3adff2c8d1440efd045388af8577c975b8d0f925a71f93fe': {'frag': 1640,\n",
       "  'frag_hash': '08705a6664df7d4c3adff2c8d1440efd045388af8577c975b8d0f925a71f93fe',\n",
       "  'score': 3,\n",
       "  'id': 24,\n",
       "  'parents': ['ed96516a9b489caa62f2fd57414d6a9244f739bbf32d68e57ca6be8af1cb8ca4',\n",
       "   'a0e100d069277e8576c4ab93b8f698cd04100614564dd7c86eda8a1ea8cd5000',\n",
       "   '85c975ccf4ed78a0573f89995edcaa9ea4d6584f427289d1ac82a1616a66a18f',\n",
       "   'ae71b8047ca77d099ab55d8c7350a8f6478a74faff5799b9f08a36b77ff8c241'],\n",
       "  'atoms_pulled': [10, 9, 6, 5, 3],\n",
       "  'left_pred': [0.6089612245559692,\n",
       "   0.03519429638981819,\n",
       "   0.0004995145718567073,\n",
       "   4.636461744667031e-05,\n",
       "   1.2115456229366828e-06],\n",
       "  'max_broken': 2,\n",
       "  'tree_depth': 2,\n",
       "  'prob_gen': 0.10568401217460632,\n",
       "  'form': 'C3O2H4',\n",
       "  'base_mass': 72.021129368,\n",
       "  'frag_hs': 4,\n",
       "  'max_remove_hs': 2,\n",
       "  'max_add_hs': 2,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0003199471684638411,\n",
       "   0.0003932298277504742,\n",
       "   0.0001058171401382424,\n",
       "   5.2288614824647084e-05,\n",
       "   0.00010585098789306358,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [65.974179176,\n",
       "   66.982004208,\n",
       "   67.98982924,\n",
       "   68.997654272,\n",
       "   70.005479304,\n",
       "   71.013304336,\n",
       "   72.021129368,\n",
       "   73.0289544,\n",
       "   74.036779432,\n",
       "   75.044604464,\n",
       "   76.052429496,\n",
       "   77.060254528,\n",
       "   78.06807956],\n",
       "  'mz_charge': [66.981455628,\n",
       "   67.98928066,\n",
       "   68.997105692,\n",
       "   70.004930724,\n",
       "   71.012755756,\n",
       "   72.020580788,\n",
       "   73.02840582,\n",
       "   74.036230852,\n",
       "   75.044055884,\n",
       "   76.051880916,\n",
       "   77.059705948,\n",
       "   78.06753098,\n",
       "   79.075356012]},\n",
       " 'da6f914ed93bc9fc3d9eb5dbfc7299d1e7e5cbad4d9386bd6c0091cdba922ad4': {'frag': 40,\n",
       "  'frag_hash': 'da6f914ed93bc9fc3d9eb5dbfc7299d1e7e5cbad4d9386bd6c0091cdba922ad4',\n",
       "  'score': 5,\n",
       "  'id': 46,\n",
       "  'parents': ['7292dcce67f7713f1a8bc5c54e1275051c30a79e6fe27824ffb9a49b8edcfab9',\n",
       "   'ae71b8047ca77d099ab55d8c7350a8f6478a74faff5799b9f08a36b77ff8c241',\n",
       "   '77c612658d9c1394c61f30180110764f6e37b5b6b3609c15454df4effcf2a493',\n",
       "   '1e78662a044c4bdf560e8a3d4620a3627dd2e846127a8e8bb86642de65f070e2',\n",
       "   '08705a6664df7d4c3adff2c8d1440efd045388af8577c975b8d0f925a71f93fe',\n",
       "   '276efe50372573bb7c7a7be44996ad337582226f91108a78b1a3ed8e61705d7e',\n",
       "   '2310f74f23406738a7dcadca95d30880ffd46523caf8c286a221a658cfcf7003'],\n",
       "  'atoms_pulled': [],\n",
       "  'left_pred': [],\n",
       "  'max_broken': 3,\n",
       "  'tree_depth': 3,\n",
       "  'prob_gen': 0.07821344584226608,\n",
       "  'form': 'C2H3',\n",
       "  'base_mass': 27.023475096,\n",
       "  'frag_hs': 3,\n",
       "  'max_remove_hs': 3,\n",
       "  'max_add_hs': 3,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0007599957170896232,\n",
       "   0.0006677088676951826,\n",
       "   0.0009254797478206456,\n",
       "   0.0014257089933380485,\n",
       "   0.0006961159524507821,\n",
       "   6.2699502450414e-05,\n",
       "   0.00011829873255919665,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [20.976524903999998,\n",
       "   21.984349936,\n",
       "   22.992174968,\n",
       "   24.0,\n",
       "   25.007825032,\n",
       "   26.015650064,\n",
       "   27.023475096,\n",
       "   28.031300127999998,\n",
       "   29.039125159999998,\n",
       "   30.046950191999997,\n",
       "   31.054775223999997,\n",
       "   32.062600255999996,\n",
       "   33.070425287999996],\n",
       "  'mz_charge': [21.983801355999997,\n",
       "   22.991626388,\n",
       "   23.99945142,\n",
       "   25.007276452,\n",
       "   26.015101484,\n",
       "   27.022926516,\n",
       "   28.030751547999998,\n",
       "   29.038576579999997,\n",
       "   30.046401611999997,\n",
       "   31.054226643999996,\n",
       "   32.062051675999996,\n",
       "   33.069876707999995,\n",
       "   34.077701739999995]},\n",
       " 'e2c7043eb9f641b60ee19c7d67917d21349021566fbd9690dcd9d3d15ffe7da7': {'frag': 2044,\n",
       "  'frag_hash': 'e2c7043eb9f641b60ee19c7d67917d21349021566fbd9690dcd9d3d15ffe7da7',\n",
       "  'score': 2,\n",
       "  'id': 25,\n",
       "  'parents': ['70bc493e2706b2379c79e12e9683cf41aaae08f02b8d3a4238029d3de0ea9f04',\n",
       "   '70bc493e2706b2379c79e12e9683cf41aaae08f02b8d3a4238029d3de0ea9f04'],\n",
       "  'atoms_pulled': [10, 8, 6, 2, 3, 9, 5, 7, 4],\n",
       "  'left_pred': [0.9355398416519165,\n",
       "   0.8869045972824097,\n",
       "   0.42418205738067627,\n",
       "   0.3739106357097626,\n",
       "   0.10749176144599915,\n",
       "   0.03007727861404419,\n",
       "   0.0014592618681490421,\n",
       "   0.0004266017349436879,\n",
       "   5.311284985509701e-05],\n",
       "  'max_broken': 2,\n",
       "  'tree_depth': 2,\n",
       "  'prob_gen': 0.0657820925116539,\n",
       "  'form': 'C5NO3H10',\n",
       "  'base_mass': 132.06606818,\n",
       "  'frag_hs': 10,\n",
       "  'max_remove_hs': 2,\n",
       "  'max_add_hs': 2,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.00013157445937395096,\n",
       "   0.000406580074923113,\n",
       "   7.744749018456787e-05,\n",
       "   0.001877293922007084,\n",
       "   0.0015770340105518699,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [126.019117988,\n",
       "   127.02694302,\n",
       "   128.034768052,\n",
       "   129.042593084,\n",
       "   130.050418116,\n",
       "   131.058243148,\n",
       "   132.06606818,\n",
       "   133.073893212,\n",
       "   134.081718244,\n",
       "   135.089543276,\n",
       "   136.097368308,\n",
       "   137.10519334,\n",
       "   138.113018372],\n",
       "  'mz_charge': [127.02639444,\n",
       "   128.03421947200002,\n",
       "   129.04204450400002,\n",
       "   130.04986953600002,\n",
       "   131.05769456800002,\n",
       "   132.06551960000002,\n",
       "   133.07334463200002,\n",
       "   134.08116966400002,\n",
       "   135.08899469600001,\n",
       "   136.096819728,\n",
       "   137.10464476,\n",
       "   138.112469792,\n",
       "   139.120294824]},\n",
       " '71a52aa85d24327e7ff5b0a4696278d70b5ee3a15fbf93a47b728865dcfce2cd': {'frag': 1608,\n",
       "  'frag_hash': '71a52aa85d24327e7ff5b0a4696278d70b5ee3a15fbf93a47b728865dcfce2cd',\n",
       "  'score': 2,\n",
       "  'id': 10,\n",
       "  'parents': ['1d5950a40bb7a53837637d1113896ecca4f5145cbb5add027775fc0a1740c27b',\n",
       "   '70bc493e2706b2379c79e12e9683cf41aaae08f02b8d3a4238029d3de0ea9f04',\n",
       "   '74a28b2eb10efab52a55f9f1410d4ef4f3e975f6a16f9d271c4b7a7a1bba946d',\n",
       "   'a0e100d069277e8576c4ab93b8f698cd04100614564dd7c86eda8a1ea8cd5000',\n",
       "   'ed96516a9b489caa62f2fd57414d6a9244f739bbf32d68e57ca6be8af1cb8ca4',\n",
       "   'e2c7043eb9f641b60ee19c7d67917d21349021566fbd9690dcd9d3d15ffe7da7',\n",
       "   '08705a6664df7d4c3adff2c8d1440efd045388af8577c975b8d0f925a71f93fe',\n",
       "   '85c975ccf4ed78a0573f89995edcaa9ea4d6584f427289d1ac82a1616a66a18f',\n",
       "   'ae71b8047ca77d099ab55d8c7350a8f6478a74faff5799b9f08a36b77ff8c241'],\n",
       "  'atoms_pulled': [10, 9, 6, 3],\n",
       "  'left_pred': [0.003601354081183672,\n",
       "   0.0005835039773955941,\n",
       "   3.732285040314309e-05,\n",
       "   1.1102744110758067e-06],\n",
       "  'max_broken': 1,\n",
       "  'tree_depth': 1,\n",
       "  'prob_gen': 0.05535908415913582,\n",
       "  'form': 'C2O2H3',\n",
       "  'base_mass': 59.013304336000004,\n",
       "  'frag_hs': 3,\n",
       "  'max_remove_hs': 1,\n",
       "  'max_add_hs': 1,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0005237154546193779,\n",
       "   0.006812814623117447,\n",
       "   0.00021540165471378714,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [52.96635414400001,\n",
       "   53.97417917600001,\n",
       "   54.982004208000006,\n",
       "   55.989829240000006,\n",
       "   56.997654272000005,\n",
       "   58.005479304000005,\n",
       "   59.013304336000004,\n",
       "   60.021129368000004,\n",
       "   61.0289544,\n",
       "   62.036779432,\n",
       "   63.044604464,\n",
       "   64.052429496,\n",
       "   65.060254528],\n",
       "  'mz_charge': [53.97363059600001,\n",
       "   54.981455628000006,\n",
       "   55.989280660000006,\n",
       "   56.997105692000005,\n",
       "   58.004930724000005,\n",
       "   59.012755756000004,\n",
       "   60.020580788000004,\n",
       "   61.02840582,\n",
       "   62.036230852,\n",
       "   63.044055884,\n",
       "   64.051880916,\n",
       "   65.059705948,\n",
       "   66.06753098]},\n",
       " 'f7d1e46ab3fded663e3d3c4fa70ef1213ed6470904ba2920a1661c4d879f0bf3': {'frag': 151,\n",
       "  'frag_hash': 'f7d1e46ab3fded663e3d3c4fa70ef1213ed6470904ba2920a1661c4d879f0bf3',\n",
       "  'score': 2,\n",
       "  'id': 11,\n",
       "  'parents': ['1d5950a40bb7a53837637d1113896ecca4f5145cbb5add027775fc0a1740c27b',\n",
       "   '7a9a989abfe52b8bd1c0eb4aac2ca609a7fc2b87d4044172abd75a82713edb2b',\n",
       "   'c8dcbbbdd27a03202edb9fd67160564fabec9fc56dbbb00651798d1d915c8bc3',\n",
       "   '17db8521c8db2384f13a90b65b28929e84aaa5abc7bcbdaea76b28a11deaa147',\n",
       "   '234db42e13ad06299c13eefa4499c4c32a3dd9cb18a054bac4a3a2c97c4d2449',\n",
       "   'a0e100d069277e8576c4ab93b8f698cd04100614564dd7c86eda8a1ea8cd5000',\n",
       "   '1e78662a044c4bdf560e8a3d4620a3627dd2e846127a8e8bb86642de65f070e2',\n",
       "   '7292dcce67f7713f1a8bc5c54e1275051c30a79e6fe27824ffb9a49b8edcfab9',\n",
       "   '77c612658d9c1394c61f30180110764f6e37b5b6b3609c15454df4effcf2a493',\n",
       "   '4168fe96420ece8340581fff043c40f761f027c904d76438100388b513dadadc',\n",
       "   '7ae75d02312eee384a8ea004ff7fcfd554b4d022f69b9e439386ca43764b4623'],\n",
       "  'atoms_pulled': [0, 1, 2, 4, 7],\n",
       "  'left_pred': [0.04560719430446625,\n",
       "   0.04560719430446625,\n",
       "   0.04560719430446625,\n",
       "   0.0032888378482311964,\n",
       "   0.0006685503176413476],\n",
       "  'max_broken': 1,\n",
       "  'tree_depth': 1,\n",
       "  'prob_gen': 0.05535908415913582,\n",
       "  'form': 'C4NH11',\n",
       "  'base_mass': 73.089149352,\n",
       "  'frag_hs': 11,\n",
       "  'max_remove_hs': 1,\n",
       "  'max_add_hs': 1,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.006384335923939943,\n",
       "   0.01432203408330679,\n",
       "   0.004381312057375908,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [67.04219916000001,\n",
       "   68.05002419200001,\n",
       "   69.05784922400001,\n",
       "   70.06567425600001,\n",
       "   71.07349928800001,\n",
       "   72.08132432000001,\n",
       "   73.089149352,\n",
       "   74.096974384,\n",
       "   75.104799416,\n",
       "   76.112624448,\n",
       "   77.12044948,\n",
       "   78.128274512,\n",
       "   79.136099544],\n",
       "  'mz_charge': [68.04947561200001,\n",
       "   69.05730064400001,\n",
       "   70.06512567600001,\n",
       "   71.07295070800001,\n",
       "   72.08077574,\n",
       "   73.088600772,\n",
       "   74.096425804,\n",
       "   75.104250836,\n",
       "   76.112075868,\n",
       "   77.1199009,\n",
       "   78.127725932,\n",
       "   79.135550964,\n",
       "   80.143375996]},\n",
       " '276efe50372573bb7c7a7be44996ad337582226f91108a78b1a3ed8e61705d7e': {'frag': 304,\n",
       "  'frag_hash': '276efe50372573bb7c7a7be44996ad337582226f91108a78b1a3ed8e61705d7e',\n",
       "  'score': 3,\n",
       "  'id': 26,\n",
       "  'parents': ['17db8521c8db2384f13a90b65b28929e84aaa5abc7bcbdaea76b28a11deaa147',\n",
       "   '7a9a989abfe52b8bd1c0eb4aac2ca609a7fc2b87d4044172abd75a82713edb2b',\n",
       "   '74a28b2eb10efab52a55f9f1410d4ef4f3e975f6a16f9d271c4b7a7a1bba946d',\n",
       "   'ed96516a9b489caa62f2fd57414d6a9244f739bbf32d68e57ca6be8af1cb8ca4',\n",
       "   '71a52aa85d24327e7ff5b0a4696278d70b5ee3a15fbf93a47b728865dcfce2cd',\n",
       "   '234db42e13ad06299c13eefa4499c4c32a3dd9cb18a054bac4a3a2c97c4d2449',\n",
       "   '94667eb97eca20bb8fe6cce5fcd638a87eea5b5ad4db1e45766228bf933db91b',\n",
       "   'b5689b6d734390611cd52d404d69724d25efffd8495161c5532341010cf9216c',\n",
       "   '15cd818acd9ad5f480fb5a61cf3da27a8119435aafc0b233b55d9c7eaa4aefde',\n",
       "   '15cd818acd9ad5f480fb5a61cf3da27a8119435aafc0b233b55d9c7eaa4aefde',\n",
       "   '912e962db5011988379163fd109b7b7d759641f330c764b3c8ee18a2a83f33e9',\n",
       "   '1ece7638844d4ebf0b1ee2f75cef1cd485df7123da82a022caaec659d0aeb4cc',\n",
       "   'd26812b1b6d202c627808035a74f50f90949d31a4aae98f4d90dd58572d4604b',\n",
       "   '1ece7638844d4ebf0b1ee2f75cef1cd485df7123da82a022caaec659d0aeb4cc',\n",
       "   '7ae75d02312eee384a8ea004ff7fcfd554b4d022f69b9e439386ca43764b4623',\n",
       "   '02da265c9b7178dc46a94fb6b6b4bd6678aa05d7408923bea6630c06fb38b605',\n",
       "   '37c46c6b2b387ccf520a2a13011c9fd742eec012b4c5c7a4cb030e5d2f90f12c',\n",
       "   '37c46c6b2b387ccf520a2a13011c9fd742eec012b4c5c7a4cb030e5d2f90f12c'],\n",
       "  'atoms_pulled': [8, 4, 5],\n",
       "  'left_pred': [5.843201506650075e-05,\n",
       "   2.3392902221530676e-05,\n",
       "   1.1261729326861314e-07],\n",
       "  'max_broken': 2,\n",
       "  'tree_depth': 2,\n",
       "  'prob_gen': 0.05236818268895149,\n",
       "  'form': 'C2OH4',\n",
       "  'base_mass': 44.026214748,\n",
       "  'frag_hs': 4,\n",
       "  'max_remove_hs': 2,\n",
       "  'max_add_hs': 2,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.001008734223432839,\n",
       "   0.0011406439589336514,\n",
       "   0.005403446964919567,\n",
       "   0.0032775846775621176,\n",
       "   0.0023686352651566267,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [37.979264556000004,\n",
       "   38.987089588,\n",
       "   39.99491462,\n",
       "   41.002739652,\n",
       "   42.010564684,\n",
       "   43.018389716,\n",
       "   44.026214748,\n",
       "   45.03403978,\n",
       "   46.041864812,\n",
       "   47.049689844,\n",
       "   48.057514876,\n",
       "   49.065339908,\n",
       "   50.07316494],\n",
       "  'mz_charge': [38.986541008,\n",
       "   39.99436604,\n",
       "   41.002191072,\n",
       "   42.010016104,\n",
       "   43.017841136,\n",
       "   44.025666168,\n",
       "   45.0334912,\n",
       "   46.041316232,\n",
       "   47.049141264,\n",
       "   48.056966296,\n",
       "   49.064791328,\n",
       "   50.07261636,\n",
       "   51.080441392]},\n",
       " '698e929242365d0217dc27a759ddb0f77afcae94901ffd3c325e6dd46f2a7e26': {'frag': 134,\n",
       "  'frag_hash': '698e929242365d0217dc27a759ddb0f77afcae94901ffd3c325e6dd46f2a7e26',\n",
       "  'score': 2,\n",
       "  'id': 27,\n",
       "  'parents': ['8f252d273e7b489fb75b631ec7d98c2b578504bba768cab7f151c670bb90645e',\n",
       "   '8f252d273e7b489fb75b631ec7d98c2b578504bba768cab7f151c670bb90645e',\n",
       "   '8f252d273e7b489fb75b631ec7d98c2b578504bba768cab7f151c670bb90645e',\n",
       "   '70bc493e2706b2379c79e12e9683cf41aaae08f02b8d3a4238029d3de0ea9f04',\n",
       "   '0e5818a72bab69a9f809ddaa971cd543ff75d76fe913dffb305552bbe9ece22c',\n",
       "   '85c975ccf4ed78a0573f89995edcaa9ea4d6584f427289d1ac82a1616a66a18f',\n",
       "   '912e962db5011988379163fd109b7b7d759641f330c764b3c8ee18a2a83f33e9',\n",
       "   'b5689b6d734390611cd52d404d69724d25efffd8495161c5532341010cf9216c',\n",
       "   'e2c7043eb9f641b60ee19c7d67917d21349021566fbd9690dcd9d3d15ffe7da7',\n",
       "   '94667eb97eca20bb8fe6cce5fcd638a87eea5b5ad4db1e45766228bf933db91b'],\n",
       "  'atoms_pulled': [2, 1, 7],\n",
       "  'left_pred': [0.0009895622497424483,\n",
       "   0.000989561784081161,\n",
       "   2.8548099635372637e-06],\n",
       "  'max_broken': 2,\n",
       "  'tree_depth': 2,\n",
       "  'prob_gen': 0.04776407405734062,\n",
       "  'form': 'C2NH6',\n",
       "  'base_mass': 44.050024192,\n",
       "  'frag_hs': 6,\n",
       "  'max_remove_hs': 2,\n",
       "  'max_add_hs': 2,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0003897591959685087,\n",
       "   0.0008585907053202391,\n",
       "   0.00605889642611146,\n",
       "   0.013068812899291515,\n",
       "   0.018089786171913147,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [38.003074000000005,\n",
       "   39.010899032000005,\n",
       "   40.018724064000004,\n",
       "   41.026549096000004,\n",
       "   42.034374128,\n",
       "   43.04219916,\n",
       "   44.050024192,\n",
       "   45.057849224,\n",
       "   46.065674256,\n",
       "   47.073499288,\n",
       "   48.08132432,\n",
       "   49.089149352,\n",
       "   50.096974384],\n",
       "  'mz_charge': [39.010350452000004,\n",
       "   40.018175484000004,\n",
       "   41.026000516,\n",
       "   42.033825548,\n",
       "   43.04165058,\n",
       "   44.049475612,\n",
       "   45.057300644,\n",
       "   46.065125676,\n",
       "   47.072950708,\n",
       "   48.08077574,\n",
       "   49.088600772,\n",
       "   50.096425804,\n",
       "   51.104250836]},\n",
       " '114cf362eceedc179a45ac842346d57c877aacca7381a23fe3e8d76e4c653353': {'frag': 360,\n",
       "  'frag_hash': '114cf362eceedc179a45ac842346d57c877aacca7381a23fe3e8d76e4c653353',\n",
       "  'score': 5,\n",
       "  'id': 47,\n",
       "  'parents': ['02da265c9b7178dc46a94fb6b6b4bd6678aa05d7408923bea6630c06fb38b605',\n",
       "   '37c46c6b2b387ccf520a2a13011c9fd742eec012b4c5c7a4cb030e5d2f90f12c',\n",
       "   '37c46c6b2b387ccf520a2a13011c9fd742eec012b4c5c7a4cb030e5d2f90f12c',\n",
       "   '08705a6664df7d4c3adff2c8d1440efd045388af8577c975b8d0f925a71f93fe',\n",
       "   '1e78662a044c4bdf560e8a3d4620a3627dd2e846127a8e8bb86642de65f070e2',\n",
       "   '7ae75d02312eee384a8ea004ff7fcfd554b4d022f69b9e439386ca43764b4623'],\n",
       "  'atoms_pulled': [],\n",
       "  'left_pred': [],\n",
       "  'max_broken': 4,\n",
       "  'tree_depth': 3,\n",
       "  'prob_gen': 0.042022623121738434,\n",
       "  'form': 'C3OH4',\n",
       "  'base_mass': 56.026214748,\n",
       "  'frag_hs': 4,\n",
       "  'max_remove_hs': 4,\n",
       "  'max_add_hs': 4,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   3.0704683013027534e-05,\n",
       "   0.00021349673625081778,\n",
       "   0.0003957887238357216,\n",
       "   0.0008134948438964784,\n",
       "   0.0001828642125474289,\n",
       "   2.0269155356800184e-05,\n",
       "   6.727079016854987e-05,\n",
       "   0.0033290437422692776,\n",
       "   1.4010164704814088e-05,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [49.979264556000004,\n",
       "   50.987089588,\n",
       "   51.99491462,\n",
       "   53.002739652,\n",
       "   54.010564684,\n",
       "   55.018389716,\n",
       "   56.026214748,\n",
       "   57.03403978,\n",
       "   58.041864812,\n",
       "   59.049689844,\n",
       "   60.057514876,\n",
       "   61.065339908,\n",
       "   62.07316494],\n",
       "  'mz_charge': [50.986541008,\n",
       "   51.99436604,\n",
       "   53.002191072,\n",
       "   54.010016104,\n",
       "   55.017841136,\n",
       "   56.025666168,\n",
       "   57.0334912,\n",
       "   58.041316232,\n",
       "   59.049141264,\n",
       "   60.056966296,\n",
       "   61.064791328,\n",
       "   62.07261636,\n",
       "   63.080441392]},\n",
       " 'f78e840b4424ae2d9668414811331d47c2a6cd31e549b12074b7b55a1811a253': {'frag': 255,\n",
       "  'frag_hash': 'f78e840b4424ae2d9668414811331d47c2a6cd31e549b12074b7b55a1811a253',\n",
       "  'score': 4,\n",
       "  'id': 48,\n",
       "  'parents': ['4168fe96420ece8340581fff043c40f761f027c904d76438100388b513dadadc',\n",
       "   '1e78662a044c4bdf560e8a3d4620a3627dd2e846127a8e8bb86642de65f070e2',\n",
       "   '7ae75d02312eee384a8ea004ff7fcfd554b4d022f69b9e439386ca43764b4623'],\n",
       "  'atoms_pulled': [],\n",
       "  'left_pred': [],\n",
       "  'max_broken': 4,\n",
       "  'tree_depth': 3,\n",
       "  'prob_gen': 0.03413516655564308,\n",
       "  'form': 'C7NH14',\n",
       "  'base_mass': 112.11262444799999,\n",
       "  'frag_hs': 14,\n",
       "  'max_remove_hs': 4,\n",
       "  'max_add_hs': 2,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.003453167388215661,\n",
       "   0.0036817030049860477,\n",
       "   0.000980897806584835,\n",
       "   0.0018460131250321865,\n",
       "   0.0015543093904852867,\n",
       "   0.001389533863402903,\n",
       "   0.001901142648421228,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [106.065674256,\n",
       "   107.073499288,\n",
       "   108.08132432,\n",
       "   109.08914935199999,\n",
       "   110.09697438399999,\n",
       "   111.10479941599999,\n",
       "   112.11262444799999,\n",
       "   113.12044947999999,\n",
       "   114.12827451199999,\n",
       "   115.13609954399999,\n",
       "   116.14392457599999,\n",
       "   117.15174960799999,\n",
       "   118.15957463999999],\n",
       "  'mz_charge': [107.072950708,\n",
       "   108.08077573999999,\n",
       "   109.08860077199999,\n",
       "   110.09642580399999,\n",
       "   111.10425083599999,\n",
       "   112.11207586799999,\n",
       "   113.11990089999999,\n",
       "   114.12772593199999,\n",
       "   115.13555096399999,\n",
       "   116.14337599599999,\n",
       "   117.15120102799999,\n",
       "   118.15902605999999,\n",
       "   119.16685109199999]},\n",
       " '630472ba845c7a5707de4630f98b150548c16b8f34c8de8aaddcab665d4954d3': {'frag': 2040,\n",
       "  'frag_hash': '630472ba845c7a5707de4630f98b150548c16b8f34c8de8aaddcab665d4954d3',\n",
       "  'score': 3,\n",
       "  'id': 49,\n",
       "  'parents': ['e2c7043eb9f641b60ee19c7d67917d21349021566fbd9690dcd9d3d15ffe7da7'],\n",
       "  'atoms_pulled': [],\n",
       "  'left_pred': [],\n",
       "  'max_broken': 3,\n",
       "  'tree_depth': 3,\n",
       "  'prob_gen': 0.024596624076366425,\n",
       "  'form': 'C4NO3H7',\n",
       "  'base_mass': 117.042593084,\n",
       "  'frag_hs': 7,\n",
       "  'max_remove_hs': 3,\n",
       "  'max_add_hs': 3,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   3.268874570494518e-05,\n",
       "   0.00016899005277082324,\n",
       "   7.39337265258655e-05,\n",
       "   0.0006671726587228477,\n",
       "   0.0002683502098079771,\n",
       "   0.0013726656325161457,\n",
       "   0.0030376524664461613,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [110.995642892,\n",
       "   112.003467924,\n",
       "   113.011292956,\n",
       "   114.019117988,\n",
       "   115.02694302,\n",
       "   116.034768052,\n",
       "   117.042593084,\n",
       "   118.050418116,\n",
       "   119.058243148,\n",
       "   120.06606818,\n",
       "   121.073893212,\n",
       "   122.081718244,\n",
       "   123.089543276],\n",
       "  'mz_charge': [112.002919344,\n",
       "   113.010744376,\n",
       "   114.018569408,\n",
       "   115.02639444,\n",
       "   116.034219472,\n",
       "   117.042044504,\n",
       "   118.049869536,\n",
       "   119.057694568,\n",
       "   120.0655196,\n",
       "   121.073344632,\n",
       "   122.081169664,\n",
       "   123.088994696,\n",
       "   124.096819728]},\n",
       " '234db42e13ad06299c13eefa4499c4c32a3dd9cb18a054bac4a3a2c97c4d2449': {'frag': 1535,\n",
       "  'frag_hash': '234db42e13ad06299c13eefa4499c4c32a3dd9cb18a054bac4a3a2c97c4d2449',\n",
       "  'score': 2,\n",
       "  'id': 12,\n",
       "  'parents': ['1d5950a40bb7a53837637d1113896ecca4f5145cbb5add027775fc0a1740c27b'],\n",
       "  'atoms_pulled': [0, 1, 2, 7, 10, 4, 8, 3, 5, 6],\n",
       "  'left_pred': [0.8233119249343872,\n",
       "   0.8233119249343872,\n",
       "   0.8233119249343872,\n",
       "   0.6969865560531616,\n",
       "   0.4375123083591461,\n",
       "   0.39245539903640747,\n",
       "   0.26888248324394226,\n",
       "   0.0038253574166446924,\n",
       "   0.0005484253633767366,\n",
       "   1.2747105984090012e-06],\n",
       "  'max_broken': 2,\n",
       "  'tree_depth': 1,\n",
       "  'prob_gen': 0.022297628223896027,\n",
       "  'form': 'C7NO2H16',\n",
       "  'base_mass': 146.118103752,\n",
       "  'frag_hs': 16,\n",
       "  'max_remove_hs': 2,\n",
       "  'max_add_hs': 0,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0016910388367250562,\n",
       "   0.0017446825513616204,\n",
       "   0.0008402048842981458,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [140.07115356,\n",
       "   141.078978592,\n",
       "   142.086803624,\n",
       "   143.094628656,\n",
       "   144.102453688,\n",
       "   145.11027872,\n",
       "   146.118103752,\n",
       "   147.125928784,\n",
       "   148.133753816,\n",
       "   149.141578848,\n",
       "   150.14940388,\n",
       "   151.157228912,\n",
       "   152.165053944],\n",
       "  'mz_charge': [141.078430012,\n",
       "   142.086255044,\n",
       "   143.094080076,\n",
       "   144.101905108,\n",
       "   145.10973014,\n",
       "   146.117555172,\n",
       "   147.125380204,\n",
       "   148.133205236,\n",
       "   149.141030268,\n",
       "   150.1488553,\n",
       "   151.156680332,\n",
       "   152.164505364,\n",
       "   153.172330396]},\n",
       " '912e962db5011988379163fd109b7b7d759641f330c764b3c8ee18a2a83f33e9': {'frag': 1534,\n",
       "  'frag_hash': '912e962db5011988379163fd109b7b7d759641f330c764b3c8ee18a2a83f33e9',\n",
       "  'score': 3,\n",
       "  'id': 28,\n",
       "  'parents': ['234db42e13ad06299c13eefa4499c4c32a3dd9cb18a054bac4a3a2c97c4d2449',\n",
       "   '234db42e13ad06299c13eefa4499c4c32a3dd9cb18a054bac4a3a2c97c4d2449',\n",
       "   '234db42e13ad06299c13eefa4499c4c32a3dd9cb18a054bac4a3a2c97c4d2449',\n",
       "   '70bc493e2706b2379c79e12e9683cf41aaae08f02b8d3a4238029d3de0ea9f04'],\n",
       "  'atoms_pulled': [1, 2, 8, 10, 7, 4, 3, 5, 6],\n",
       "  'left_pred': [0.7126714587211609,\n",
       "   0.7126714587211609,\n",
       "   0.5814046263694763,\n",
       "   0.5401696562767029,\n",
       "   0.19720622897148132,\n",
       "   0.03718675673007965,\n",
       "   0.005098422523587942,\n",
       "   0.0027253234293311834,\n",
       "   2.8013639621349284e-06],\n",
       "  'max_broken': 3,\n",
       "  'tree_depth': 2,\n",
       "  'prob_gen': 0.018357902765274048,\n",
       "  'form': 'C6NO2H13',\n",
       "  'base_mass': 131.094628656,\n",
       "  'frag_hs': 13,\n",
       "  'max_remove_hs': 3,\n",
       "  'max_add_hs': 3,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   6.572302027052501e-06,\n",
       "   0.0003053602122236043,\n",
       "   0.0004167630977462977,\n",
       "   0.0003044681216124445,\n",
       "   4.9435770051786676e-05,\n",
       "   0.0007276401156559587,\n",
       "   0.0017850421136245131,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [125.047678464,\n",
       "   126.055503496,\n",
       "   127.063328528,\n",
       "   128.07115356,\n",
       "   129.078978592,\n",
       "   130.086803624,\n",
       "   131.094628656,\n",
       "   132.102453688,\n",
       "   133.11027872,\n",
       "   134.118103752,\n",
       "   135.125928784,\n",
       "   136.133753816,\n",
       "   137.141578848],\n",
       "  'mz_charge': [126.054954916,\n",
       "   127.062779948,\n",
       "   128.07060498,\n",
       "   129.078430012,\n",
       "   130.086255044,\n",
       "   131.094080076,\n",
       "   132.101905108,\n",
       "   133.10973014,\n",
       "   134.117555172,\n",
       "   135.125380204,\n",
       "   136.133205236,\n",
       "   137.141030268,\n",
       "   138.1488553]},\n",
       " '4261fe198f6c5092936b6ae65d3770de799b6c15bfea80c4df734ae728531b3d': {'frag': 1144,\n",
       "  'frag_hash': '4261fe198f6c5092936b6ae65d3770de799b6c15bfea80c4df734ae728531b3d',\n",
       "  'score': 4,\n",
       "  'id': 50,\n",
       "  'parents': ['ae71b8047ca77d099ab55d8c7350a8f6478a74faff5799b9f08a36b77ff8c241',\n",
       "   '1ece7638844d4ebf0b1ee2f75cef1cd485df7123da82a022caaec659d0aeb4cc',\n",
       "   '7ae75d02312eee384a8ea004ff7fcfd554b4d022f69b9e439386ca43764b4623'],\n",
       "  'atoms_pulled': [],\n",
       "  'left_pred': [],\n",
       "  'max_broken': 4,\n",
       "  'tree_depth': 3,\n",
       "  'prob_gen': 0.016529100015759468,\n",
       "  'form': 'C4OH6',\n",
       "  'base_mass': 70.041864812,\n",
       "  'frag_hs': 6,\n",
       "  'max_remove_hs': 4,\n",
       "  'max_add_hs': 4,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0006498742732219398,\n",
       "   0.0013072686269879341,\n",
       "   0.0007093580788932741,\n",
       "   0.001199224148876965,\n",
       "   0.0008975732489489019,\n",
       "   0.00014736749290023,\n",
       "   7.911182910902426e-05,\n",
       "   0.00019920538761653006,\n",
       "   9.723958100948948e-06,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [63.99491462,\n",
       "   65.002739652,\n",
       "   66.010564684,\n",
       "   67.018389716,\n",
       "   68.026214748,\n",
       "   69.03403978,\n",
       "   70.041864812,\n",
       "   71.049689844,\n",
       "   72.057514876,\n",
       "   73.065339908,\n",
       "   74.07316494,\n",
       "   75.080989972,\n",
       "   76.088815004],\n",
       "  'mz_charge': [65.002191072,\n",
       "   66.010016104,\n",
       "   67.017841136,\n",
       "   68.025666168,\n",
       "   69.0334912,\n",
       "   70.041316232,\n",
       "   71.049141264,\n",
       "   72.056966296,\n",
       "   73.064791328,\n",
       "   74.07261636,\n",
       "   75.080441392,\n",
       "   76.088266424,\n",
       "   77.096091456]},\n",
       " '1ece7638844d4ebf0b1ee2f75cef1cd485df7123da82a022caaec659d0aeb4cc': {'frag': 1400,\n",
       "  'frag_hash': '1ece7638844d4ebf0b1ee2f75cef1cd485df7123da82a022caaec659d0aeb4cc',\n",
       "  'score': 3,\n",
       "  'id': 29,\n",
       "  'parents': ['234db42e13ad06299c13eefa4499c4c32a3dd9cb18a054bac4a3a2c97c4d2449',\n",
       "   '74a28b2eb10efab52a55f9f1410d4ef4f3e975f6a16f9d271c4b7a7a1bba946d',\n",
       "   '912e962db5011988379163fd109b7b7d759641f330c764b3c8ee18a2a83f33e9'],\n",
       "  'atoms_pulled': [10, 8, 4, 3, 5, 6],\n",
       "  'left_pred': [0.5578453540802002,\n",
       "   0.5361291170120239,\n",
       "   0.005712414626032114,\n",
       "   0.00042541290167719126,\n",
       "   0.00010687532630981877,\n",
       "   4.5583721686170975e-08],\n",
       "  'max_broken': 3,\n",
       "  'tree_depth': 2,\n",
       "  'prob_gen': 0.01554114744067192,\n",
       "  'form': 'C4O2H7',\n",
       "  'base_mass': 87.044604464,\n",
       "  'frag_hs': 7,\n",
       "  'max_remove_hs': 3,\n",
       "  'max_add_hs': 3,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.007038445211946964,\n",
       "   0.0005258700111880898,\n",
       "   0.0016963208327069879,\n",
       "   0.00036142044700682163,\n",
       "   0.00014920385729055852,\n",
       "   0.0005391238955780864,\n",
       "   0.003502186620607972,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [80.997654272,\n",
       "   82.005479304,\n",
       "   83.013304336,\n",
       "   84.021129368,\n",
       "   85.0289544,\n",
       "   86.036779432,\n",
       "   87.044604464,\n",
       "   88.052429496,\n",
       "   89.060254528,\n",
       "   90.06807956,\n",
       "   91.075904592,\n",
       "   92.083729624,\n",
       "   93.091554656],\n",
       "  'mz_charge': [82.004930724,\n",
       "   83.012755756,\n",
       "   84.020580788,\n",
       "   85.02840582,\n",
       "   86.036230852,\n",
       "   87.044055884,\n",
       "   88.051880916,\n",
       "   89.059705948,\n",
       "   90.06753098,\n",
       "   91.075356012,\n",
       "   92.083181044,\n",
       "   93.091006076,\n",
       "   94.098831108]},\n",
       " 'bb74a9c0d7f9dd2317303484965f1732a9f68766200d1df3ef032e5dc26877d2': {'frag': 376,\n",
       "  'frag_hash': 'bb74a9c0d7f9dd2317303484965f1732a9f68766200d1df3ef032e5dc26877d2',\n",
       "  'score': 4,\n",
       "  'id': 51,\n",
       "  'parents': ['d26812b1b6d202c627808035a74f50f90949d31a4aae98f4d90dd58572d4604b',\n",
       "   '1ece7638844d4ebf0b1ee2f75cef1cd485df7123da82a022caaec659d0aeb4cc',\n",
       "   '1e78662a044c4bdf560e8a3d4620a3627dd2e846127a8e8bb86642de65f070e2'],\n",
       "  'atoms_pulled': [],\n",
       "  'left_pred': [],\n",
       "  'max_broken': 4,\n",
       "  'tree_depth': 3,\n",
       "  'prob_gen': 0.013524353504180908,\n",
       "  'form': 'C4OH6',\n",
       "  'base_mass': 70.041864812,\n",
       "  'frag_hs': 6,\n",
       "  'max_remove_hs': 4,\n",
       "  'max_add_hs': 4,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0005769318668171763,\n",
       "   0.0012043094029650092,\n",
       "   0.002921501873061061,\n",
       "   0.0030584048945456743,\n",
       "   0.0009501950698904693,\n",
       "   0.0003938614681828767,\n",
       "   0.00022337005066219717,\n",
       "   9.372802742291242e-05,\n",
       "   3.908919552486623e-06,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [63.99491462,\n",
       "   65.002739652,\n",
       "   66.010564684,\n",
       "   67.018389716,\n",
       "   68.026214748,\n",
       "   69.03403978,\n",
       "   70.041864812,\n",
       "   71.049689844,\n",
       "   72.057514876,\n",
       "   73.065339908,\n",
       "   74.07316494,\n",
       "   75.080989972,\n",
       "   76.088815004],\n",
       "  'mz_charge': [65.002191072,\n",
       "   66.010016104,\n",
       "   67.017841136,\n",
       "   68.025666168,\n",
       "   69.0334912,\n",
       "   70.041316232,\n",
       "   71.049141264,\n",
       "   72.056966296,\n",
       "   73.064791328,\n",
       "   74.07261636,\n",
       "   75.080441392,\n",
       "   76.088266424,\n",
       "   77.096091456]},\n",
       " '1e78662a044c4bdf560e8a3d4620a3627dd2e846127a8e8bb86642de65f070e2': {'frag': 511,\n",
       "  'frag_hash': '1e78662a044c4bdf560e8a3d4620a3627dd2e846127a8e8bb86642de65f070e2',\n",
       "  'score': 3,\n",
       "  'id': 30,\n",
       "  'parents': ['c8dcbbbdd27a03202edb9fd67160564fabec9fc56dbbb00651798d1d915c8bc3',\n",
       "   '234db42e13ad06299c13eefa4499c4c32a3dd9cb18a054bac4a3a2c97c4d2449'],\n",
       "  'atoms_pulled': [8, 0, 1, 2, 7, 4, 3, 5, 6],\n",
       "  'left_pred': [0.7816733717918396,\n",
       "   0.7617777585983276,\n",
       "   0.7617777585983276,\n",
       "   0.7617777585983276,\n",
       "   0.5848750472068787,\n",
       "   0.17591746151447296,\n",
       "   0.013974935747683048,\n",
       "   0.0039600953459739685,\n",
       "   0.0025570527650415897],\n",
       "  'max_broken': 3,\n",
       "  'tree_depth': 2,\n",
       "  'prob_gen': 0.01334614958614111,\n",
       "  'form': 'C7NOH15',\n",
       "  'base_mass': 129.1153641,\n",
       "  'frag_hs': 15,\n",
       "  'max_remove_hs': 3,\n",
       "  'max_add_hs': 1,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0009743720875121653,\n",
       "   0.00025927339447662234,\n",
       "   0.00030625570798292756,\n",
       "   0.0003336738154757768,\n",
       "   0.000322559179039672,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [123.068413908,\n",
       "   124.07623894,\n",
       "   125.084063972,\n",
       "   126.091889004,\n",
       "   127.099714036,\n",
       "   128.107539068,\n",
       "   129.1153641,\n",
       "   130.123189132,\n",
       "   131.131014164,\n",
       "   132.138839196,\n",
       "   133.146664228,\n",
       "   134.15448926,\n",
       "   135.162314292],\n",
       "  'mz_charge': [124.07569036,\n",
       "   125.083515392,\n",
       "   126.091340424,\n",
       "   127.099165456,\n",
       "   128.106990488,\n",
       "   129.11481552,\n",
       "   130.122640552,\n",
       "   131.130465584,\n",
       "   132.138290616,\n",
       "   133.146115648,\n",
       "   134.15394068,\n",
       "   135.161765712,\n",
       "   136.169590744]},\n",
       " '90767c8f12b1e3c8dca4d8c688fe0029bf7f4016c0172c00c24027bc7b63f7c4': {'frag': 1532,\n",
       "  'frag_hash': '90767c8f12b1e3c8dca4d8c688fe0029bf7f4016c0172c00c24027bc7b63f7c4',\n",
       "  'score': 4,\n",
       "  'id': 52,\n",
       "  'parents': ['912e962db5011988379163fd109b7b7d759641f330c764b3c8ee18a2a83f33e9',\n",
       "   '912e962db5011988379163fd109b7b7d759641f330c764b3c8ee18a2a83f33e9',\n",
       "   'e2c7043eb9f641b60ee19c7d67917d21349021566fbd9690dcd9d3d15ffe7da7'],\n",
       "  'atoms_pulled': [],\n",
       "  'left_pred': [],\n",
       "  'max_broken': 4,\n",
       "  'tree_depth': 3,\n",
       "  'prob_gen': 0.013083153404295444,\n",
       "  'form': 'C5NO2H10',\n",
       "  'base_mass': 116.07115356,\n",
       "  'frag_hs': 10,\n",
       "  'max_remove_hs': 4,\n",
       "  'max_add_hs': 4,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   4.742395958601264e-06,\n",
       "   0.00010797261347761378,\n",
       "   0.00016808888176456094,\n",
       "   0.0006505574565380812,\n",
       "   6.844778545200825e-05,\n",
       "   0.0003073583939112723,\n",
       "   0.00166043930221349,\n",
       "   0.0011532995849847794,\n",
       "   0.00016717001562938094,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [110.024203368,\n",
       "   111.0320284,\n",
       "   112.039853432,\n",
       "   113.047678464,\n",
       "   114.055503496,\n",
       "   115.063328528,\n",
       "   116.07115356,\n",
       "   117.078978592,\n",
       "   118.086803624,\n",
       "   119.094628656,\n",
       "   120.102453688,\n",
       "   121.11027872,\n",
       "   122.118103752],\n",
       "  'mz_charge': [111.03147982,\n",
       "   112.039304852,\n",
       "   113.047129884,\n",
       "   114.054954916,\n",
       "   115.062779948,\n",
       "   116.07060498,\n",
       "   117.078430012,\n",
       "   118.086255044,\n",
       "   119.094080076,\n",
       "   120.101905108,\n",
       "   121.10973014,\n",
       "   122.117555172,\n",
       "   123.125380204]},\n",
       " '7ae75d02312eee384a8ea004ff7fcfd554b4d022f69b9e439386ca43764b4623': {'frag': 1279,\n",
       "  'frag_hash': '7ae75d02312eee384a8ea004ff7fcfd554b4d022f69b9e439386ca43764b4623',\n",
       "  'score': 3,\n",
       "  'id': 31,\n",
       "  'parents': ['a0e100d069277e8576c4ab93b8f698cd04100614564dd7c86eda8a1ea8cd5000',\n",
       "   '234db42e13ad06299c13eefa4499c4c32a3dd9cb18a054bac4a3a2c97c4d2449'],\n",
       "  'atoms_pulled': [0, 1, 2, 7, 10, 4, 3, 6, 5],\n",
       "  'left_pred': [0.9440409541130066,\n",
       "   0.9440409541130066,\n",
       "   0.9440409541130066,\n",
       "   0.42744866013526917,\n",
       "   0.38581183552742004,\n",
       "   0.15021055936813354,\n",
       "   0.0032914786133915186,\n",
       "   0.0002674075949471444,\n",
       "   1.480004812037805e-06],\n",
       "  'max_broken': 3,\n",
       "  'tree_depth': 2,\n",
       "  'prob_gen': 0.012495001778006554,\n",
       "  'form': 'C7NOH15',\n",
       "  'base_mass': 129.1153641,\n",
       "  'frag_hs': 15,\n",
       "  'max_remove_hs': 3,\n",
       "  'max_add_hs': 1,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0037584397941827774,\n",
       "   0.0007492838776670396,\n",
       "   0.0011289662215858698,\n",
       "   0.0007918312912806869,\n",
       "   0.0008509341278113425,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [123.068413908,\n",
       "   124.07623894,\n",
       "   125.084063972,\n",
       "   126.091889004,\n",
       "   127.099714036,\n",
       "   128.107539068,\n",
       "   129.1153641,\n",
       "   130.123189132,\n",
       "   131.131014164,\n",
       "   132.138839196,\n",
       "   133.146664228,\n",
       "   134.15448926,\n",
       "   135.162314292],\n",
       "  'mz_charge': [124.07569036,\n",
       "   125.083515392,\n",
       "   126.091340424,\n",
       "   127.099165456,\n",
       "   128.106990488,\n",
       "   129.11481552,\n",
       "   130.122640552,\n",
       "   131.130465584,\n",
       "   132.138290616,\n",
       "   133.146115648,\n",
       "   134.15394068,\n",
       "   135.161765712,\n",
       "   136.169590744]},\n",
       " '1cd100b425579bc2cd191c4ce13374c08cd9a9f29ccafe56214af859c9806da6': {'frag': 1278,\n",
       "  'frag_hash': '1cd100b425579bc2cd191c4ce13374c08cd9a9f29ccafe56214af859c9806da6',\n",
       "  'score': 4,\n",
       "  'id': 53,\n",
       "  'parents': ['7ae75d02312eee384a8ea004ff7fcfd554b4d022f69b9e439386ca43764b4623',\n",
       "   '7ae75d02312eee384a8ea004ff7fcfd554b4d022f69b9e439386ca43764b4623',\n",
       "   '7ae75d02312eee384a8ea004ff7fcfd554b4d022f69b9e439386ca43764b4623',\n",
       "   '912e962db5011988379163fd109b7b7d759641f330c764b3c8ee18a2a83f33e9',\n",
       "   '85c975ccf4ed78a0573f89995edcaa9ea4d6584f427289d1ac82a1616a66a18f'],\n",
       "  'atoms_pulled': [],\n",
       "  'left_pred': [],\n",
       "  'max_broken': 4,\n",
       "  'tree_depth': 3,\n",
       "  'prob_gen': 0.011795793659985065,\n",
       "  'form': 'C6NOH12',\n",
       "  'base_mass': 114.091889004,\n",
       "  'frag_hs': 12,\n",
       "  'max_remove_hs': 4,\n",
       "  'max_add_hs': 4,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   9.163105460174847e-06,\n",
       "   0.00015807458839844912,\n",
       "   0.0008277585729956627,\n",
       "   0.0018807310843840241,\n",
       "   0.0008713857387192547,\n",
       "   0.00046915162238292396,\n",
       "   0.0005783357773907483,\n",
       "   4.17845330957789e-05,\n",
       "   1.872985558293294e-05,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [108.044938812,\n",
       "   109.052763844,\n",
       "   110.060588876,\n",
       "   111.068413908,\n",
       "   112.07623894,\n",
       "   113.084063972,\n",
       "   114.091889004,\n",
       "   115.099714036,\n",
       "   116.107539068,\n",
       "   117.1153641,\n",
       "   118.123189132,\n",
       "   119.13101416399999,\n",
       "   120.13883919599999],\n",
       "  'mz_charge': [109.052215264,\n",
       "   110.060040296,\n",
       "   111.067865328,\n",
       "   112.07569036,\n",
       "   113.083515392,\n",
       "   114.091340424,\n",
       "   115.099165456,\n",
       "   116.106990488,\n",
       "   117.11481552,\n",
       "   118.122640552,\n",
       "   119.13046558399999,\n",
       "   120.13829061599999,\n",
       "   121.14611564799999]},\n",
       " '381ad67185637620362aa3df1fdc2e288e3ec35a989e74e2bd99e53af298f865': {'frag': 510,\n",
       "  'frag_hash': '381ad67185637620362aa3df1fdc2e288e3ec35a989e74e2bd99e53af298f865',\n",
       "  'score': 4,\n",
       "  'id': 54,\n",
       "  'parents': ['1e78662a044c4bdf560e8a3d4620a3627dd2e846127a8e8bb86642de65f070e2',\n",
       "   '1e78662a044c4bdf560e8a3d4620a3627dd2e846127a8e8bb86642de65f070e2',\n",
       "   '1e78662a044c4bdf560e8a3d4620a3627dd2e846127a8e8bb86642de65f070e2',\n",
       "   '912e962db5011988379163fd109b7b7d759641f330c764b3c8ee18a2a83f33e9',\n",
       "   '0e5818a72bab69a9f809ddaa971cd543ff75d76fe913dffb305552bbe9ece22c'],\n",
       "  'atoms_pulled': [],\n",
       "  'left_pred': [],\n",
       "  'max_broken': 4,\n",
       "  'tree_depth': 3,\n",
       "  'prob_gen': 0.010166799649596214,\n",
       "  'form': 'C6NOH12',\n",
       "  'base_mass': 114.091889004,\n",
       "  'frag_hs': 12,\n",
       "  'max_remove_hs': 4,\n",
       "  'max_add_hs': 4,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   3.706728193719755e-06,\n",
       "   6.689324072794989e-05,\n",
       "   0.0003824007580988109,\n",
       "   0.0007268910994753242,\n",
       "   0.0003617709444370121,\n",
       "   0.00016617783694528043,\n",
       "   0.00020718607993330806,\n",
       "   2.4755820049904287e-05,\n",
       "   1.2695137229457032e-05,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [108.044938812,\n",
       "   109.052763844,\n",
       "   110.060588876,\n",
       "   111.068413908,\n",
       "   112.07623894,\n",
       "   113.084063972,\n",
       "   114.091889004,\n",
       "   115.099714036,\n",
       "   116.107539068,\n",
       "   117.1153641,\n",
       "   118.123189132,\n",
       "   119.13101416399999,\n",
       "   120.13883919599999],\n",
       "  'mz_charge': [109.052215264,\n",
       "   110.060040296,\n",
       "   111.067865328,\n",
       "   112.07569036,\n",
       "   113.083515392,\n",
       "   114.091340424,\n",
       "   115.099165456,\n",
       "   116.106990488,\n",
       "   117.11481552,\n",
       "   118.122640552,\n",
       "   119.13046558399999,\n",
       "   120.13829061599999,\n",
       "   121.14611564799999]},\n",
       " '37c46c6b2b387ccf520a2a13011c9fd742eec012b4c5c7a4cb030e5d2f90f12c': {'frag': 1384,\n",
       "  'frag_hash': '37c46c6b2b387ccf520a2a13011c9fd742eec012b4c5c7a4cb030e5d2f90f12c',\n",
       "  'score': 4,\n",
       "  'id': 32,\n",
       "  'parents': ['234db42e13ad06299c13eefa4499c4c32a3dd9cb18a054bac4a3a2c97c4d2449',\n",
       "   'ed96516a9b489caa62f2fd57414d6a9244f739bbf32d68e57ca6be8af1cb8ca4',\n",
       "   '912e962db5011988379163fd109b7b7d759641f330c764b3c8ee18a2a83f33e9',\n",
       "   '1ece7638844d4ebf0b1ee2f75cef1cd485df7123da82a022caaec659d0aeb4cc'],\n",
       "  'atoms_pulled': [8, 10, 3, 5, 6],\n",
       "  'left_pred': [0.5646050572395325,\n",
       "   0.49605584144592285,\n",
       "   1.4613870291668718e-07,\n",
       "   8.562040676451943e-08,\n",
       "   1.1179446701703455e-08],\n",
       "  'max_broken': 3,\n",
       "  'tree_depth': 2,\n",
       "  'prob_gen': 0.008750824257731438,\n",
       "  'form': 'C3O2H5',\n",
       "  'base_mass': 73.0289544,\n",
       "  'frag_hs': 5,\n",
       "  'max_remove_hs': 3,\n",
       "  'max_add_hs': 3,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.001303858938626945,\n",
       "   0.0005164147587493062,\n",
       "   0.0008218694711104035,\n",
       "   0.0010183273116126657,\n",
       "   8.924996654968709e-05,\n",
       "   0.0032961242832243443,\n",
       "   0.022746600210666656,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [66.982004208,\n",
       "   67.98982924,\n",
       "   68.997654272,\n",
       "   70.005479304,\n",
       "   71.013304336,\n",
       "   72.021129368,\n",
       "   73.0289544,\n",
       "   74.036779432,\n",
       "   75.044604464,\n",
       "   76.052429496,\n",
       "   77.060254528,\n",
       "   78.06807956,\n",
       "   79.075904592],\n",
       "  'mz_charge': [67.98928066,\n",
       "   68.997105692,\n",
       "   70.004930724,\n",
       "   71.012755756,\n",
       "   72.020580788,\n",
       "   73.02840582,\n",
       "   74.036230852,\n",
       "   75.044055884,\n",
       "   76.051880916,\n",
       "   77.059705948,\n",
       "   78.06753098,\n",
       "   79.075356012,\n",
       "   80.083181044]},\n",
       " '9d017b069a7fdca27525e9564dbf86e8cc578bebad3a3f8df65894e348bcb0c2': {'frag': 576,\n",
       "  'frag_hash': '9d017b069a7fdca27525e9564dbf86e8cc578bebad3a3f8df65894e348bcb0c2',\n",
       "  'score': 3,\n",
       "  'id': 35,\n",
       "  'parents': ['c8dcbbbdd27a03202edb9fd67160564fabec9fc56dbbb00651798d1d915c8bc3',\n",
       "   '88d5f572dfd3ff2931034a21439d6bc372adfa32759c9d0f986c2384e59c5c0f',\n",
       "   '4168fe96420ece8340581fff043c40f761f027c904d76438100388b513dadadc',\n",
       "   '0e5818a72bab69a9f809ddaa971cd543ff75d76fe913dffb305552bbe9ece22c',\n",
       "   'd26812b1b6d202c627808035a74f50f90949d31a4aae98f4d90dd58572d4604b',\n",
       "   '02da265c9b7178dc46a94fb6b6b4bd6678aa05d7408923bea6630c06fb38b605',\n",
       "   '2310f74f23406738a7dcadca95d30880ffd46523caf8c286a221a658cfcf7003'],\n",
       "  'atoms_pulled': [9, 6],\n",
       "  'left_pred': [7.282374667738623e-07, 4.24977002921878e-07],\n",
       "  'max_broken': 2,\n",
       "  'tree_depth': 2,\n",
       "  'prob_gen': 0.004274513106793165,\n",
       "  'form': 'CO',\n",
       "  'base_mass': 27.99491462,\n",
       "  'frag_hs': 0,\n",
       "  'max_remove_hs': 0,\n",
       "  'max_add_hs': 2,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0005731105338782072,\n",
       "   7.49518585507758e-05,\n",
       "   0.0002336442848900333,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [21.947964428,\n",
       "   22.95578946,\n",
       "   23.963614491999998,\n",
       "   24.971439524,\n",
       "   25.979264556,\n",
       "   26.987089588,\n",
       "   27.99491462,\n",
       "   29.002739652,\n",
       "   30.010564684,\n",
       "   31.018389715999998,\n",
       "   32.026214748,\n",
       "   33.03403978,\n",
       "   34.041864812],\n",
       "  'mz_charge': [22.955240879999998,\n",
       "   23.963065911999998,\n",
       "   24.970890943999997,\n",
       "   25.978715976,\n",
       "   26.986541008,\n",
       "   27.99436604,\n",
       "   29.002191072,\n",
       "   30.010016103999998,\n",
       "   31.017841135999998,\n",
       "   32.025666168,\n",
       "   33.0334912,\n",
       "   34.041316232,\n",
       "   35.049141264]},\n",
       " '7d92424c6c1b3cc8444bcc2eadeb8fe19e735cef6ff7b99b4edff1588156156b': {'frag': 288,\n",
       "  'frag_hash': '7d92424c6c1b3cc8444bcc2eadeb8fe19e735cef6ff7b99b4edff1588156156b',\n",
       "  'score': 4,\n",
       "  'id': 33,\n",
       "  'parents': ['17db8521c8db2384f13a90b65b28929e84aaa5abc7bcbdaea76b28a11deaa147',\n",
       "   'ed96516a9b489caa62f2fd57414d6a9244f739bbf32d68e57ca6be8af1cb8ca4',\n",
       "   '234db42e13ad06299c13eefa4499c4c32a3dd9cb18a054bac4a3a2c97c4d2449',\n",
       "   '88d5f572dfd3ff2931034a21439d6bc372adfa32759c9d0f986c2384e59c5c0f',\n",
       "   '912e962db5011988379163fd109b7b7d759641f330c764b3c8ee18a2a83f33e9',\n",
       "   '7ae75d02312eee384a8ea004ff7fcfd554b4d022f69b9e439386ca43764b4623',\n",
       "   '1ece7638844d4ebf0b1ee2f75cef1cd485df7123da82a022caaec659d0aeb4cc',\n",
       "   '94667eb97eca20bb8fe6cce5fcd638a87eea5b5ad4db1e45766228bf933db91b',\n",
       "   '276efe50372573bb7c7a7be44996ad337582226f91108a78b1a3ed8e61705d7e',\n",
       "   '02da265c9b7178dc46a94fb6b6b4bd6678aa05d7408923bea6630c06fb38b605',\n",
       "   '37c46c6b2b387ccf520a2a13011c9fd742eec012b4c5c7a4cb030e5d2f90f12c',\n",
       "   '37c46c6b2b387ccf520a2a13011c9fd742eec012b4c5c7a4cb030e5d2f90f12c'],\n",
       "  'atoms_pulled': [8, 5],\n",
       "  'left_pred': [7.826680530342855e-07, 9.195562711283856e-08],\n",
       "  'max_broken': 2,\n",
       "  'tree_depth': 2,\n",
       "  'prob_gen': 0.003596230410039425,\n",
       "  'form': 'COH2',\n",
       "  'base_mass': 30.010564684,\n",
       "  'frag_hs': 2,\n",
       "  'max_remove_hs': 2,\n",
       "  'max_add_hs': 2,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0004312775272410363,\n",
       "   0.0005322517827153206,\n",
       "   0.0009051734232343733,\n",
       "   0.0007366653298959136,\n",
       "   0.0009504181216470897,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [23.963614491999998,\n",
       "   24.971439523999997,\n",
       "   25.979264555999997,\n",
       "   26.987089588,\n",
       "   27.99491462,\n",
       "   29.002739652,\n",
       "   30.010564684,\n",
       "   31.018389715999998,\n",
       "   32.026214748,\n",
       "   33.03403978,\n",
       "   34.041864812,\n",
       "   35.049689844,\n",
       "   36.057514876],\n",
       "  'mz_charge': [24.970890943999997,\n",
       "   25.978715975999997,\n",
       "   26.986541007999996,\n",
       "   27.99436604,\n",
       "   29.002191072,\n",
       "   30.010016103999998,\n",
       "   31.017841135999998,\n",
       "   32.025666168,\n",
       "   33.0334912,\n",
       "   34.041316232,\n",
       "   35.049141264,\n",
       "   36.056966296,\n",
       "   37.064791328]},\n",
       " '2310f74f23406738a7dcadca95d30880ffd46523caf8c286a221a658cfcf7003': {'frag': 584,\n",
       "  'frag_hash': '2310f74f23406738a7dcadca95d30880ffd46523caf8c286a221a658cfcf7003',\n",
       "  'score': 3,\n",
       "  'id': 34,\n",
       "  'parents': ['c8dcbbbdd27a03202edb9fd67160564fabec9fc56dbbb00651798d1d915c8bc3',\n",
       "   '71a52aa85d24327e7ff5b0a4696278d70b5ee3a15fbf93a47b728865dcfce2cd',\n",
       "   '0e5818a72bab69a9f809ddaa971cd543ff75d76fe913dffb305552bbe9ece22c',\n",
       "   'd26812b1b6d202c627808035a74f50f90949d31a4aae98f4d90dd58572d4604b',\n",
       "   '4168fe96420ece8340581fff043c40f761f027c904d76438100388b513dadadc',\n",
       "   '02da265c9b7178dc46a94fb6b6b4bd6678aa05d7408923bea6630c06fb38b605'],\n",
       "  'atoms_pulled': [9, 3, 6],\n",
       "  'left_pred': [1.5219693523249589e-05,\n",
       "   1.1024005289073102e-05,\n",
       "   6.287770020207972e-07],\n",
       "  'max_broken': 2,\n",
       "  'tree_depth': 2,\n",
       "  'prob_gen': 0.0027199918404221535,\n",
       "  'form': 'C2OH2',\n",
       "  'base_mass': 42.010564684,\n",
       "  'frag_hs': 2,\n",
       "  'max_remove_hs': 2,\n",
       "  'max_add_hs': 2,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.000980979297310114,\n",
       "   0.002143681747838855,\n",
       "   0.0003294992202427238,\n",
       "   2.08994242711924e-05,\n",
       "   0.0002786453114822507,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [35.963614492000005,\n",
       "   36.971439524000004,\n",
       "   37.979264556000004,\n",
       "   38.987089588,\n",
       "   39.99491462,\n",
       "   41.002739652,\n",
       "   42.010564684,\n",
       "   43.018389716,\n",
       "   44.026214748,\n",
       "   45.03403978,\n",
       "   46.041864812,\n",
       "   47.049689844,\n",
       "   48.057514876],\n",
       "  'mz_charge': [36.970890944000004,\n",
       "   37.978715976000004,\n",
       "   38.986541008,\n",
       "   39.99436604,\n",
       "   41.002191072,\n",
       "   42.010016104,\n",
       "   43.017841136,\n",
       "   44.025666168,\n",
       "   45.0334912,\n",
       "   46.041316232,\n",
       "   47.049141264,\n",
       "   48.056966296,\n",
       "   49.064791328]},\n",
       " '9485d787a1ed363cc9b9cbcd5ac264c02d782a0682f98518bcb25c0f94c73a79': {'frag': 130,\n",
       "  'frag_hash': '9485d787a1ed363cc9b9cbcd5ac264c02d782a0682f98518bcb25c0f94c73a79',\n",
       "  'score': 3,\n",
       "  'id': 55,\n",
       "  'parents': ['698e929242365d0217dc27a759ddb0f77afcae94901ffd3c325e6dd46f2a7e26',\n",
       "   '698e929242365d0217dc27a759ddb0f77afcae94901ffd3c325e6dd46f2a7e26',\n",
       "   'e2c7043eb9f641b60ee19c7d67917d21349021566fbd9690dcd9d3d15ffe7da7'],\n",
       "  'atoms_pulled': [],\n",
       "  'left_pred': [],\n",
       "  'max_broken': 3,\n",
       "  'tree_depth': 3,\n",
       "  'prob_gen': 4.2979521822417155e-05,\n",
       "  'form': 'CNH3',\n",
       "  'base_mass': 29.026549096,\n",
       "  'frag_hs': 3,\n",
       "  'max_remove_hs': 3,\n",
       "  'max_add_hs': 3,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   1.3874558135285042e-05,\n",
       "   6.017044506734237e-05,\n",
       "   0.00032967186416499317,\n",
       "   3.8523576222360134e-05,\n",
       "   2.8002988983644173e-05,\n",
       "   0.00021239573834463954,\n",
       "   0.0009122477495111525,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [22.979598904,\n",
       "   23.987423936,\n",
       "   24.995248968,\n",
       "   26.003074,\n",
       "   27.010899032,\n",
       "   28.018724064,\n",
       "   29.026549096,\n",
       "   30.034374128,\n",
       "   31.04219916,\n",
       "   32.050024192,\n",
       "   33.057849224,\n",
       "   34.065674256,\n",
       "   35.073499288],\n",
       "  'mz_charge': [23.986875356,\n",
       "   24.994700388,\n",
       "   26.002525419999998,\n",
       "   27.010350452,\n",
       "   28.018175484,\n",
       "   29.026000516,\n",
       "   30.033825548,\n",
       "   31.04165058,\n",
       "   32.049475612,\n",
       "   33.057300644,\n",
       "   34.065125676,\n",
       "   35.072950708,\n",
       "   36.08077574]},\n",
       " '83eb727386e7627466e627b7f3babf1495a9c31d34bfab8d2dd9cf8f917bf244': {'frag': 32,\n",
       "  'frag_hash': '83eb727386e7627466e627b7f3babf1495a9c31d34bfab8d2dd9cf8f917bf244',\n",
       "  'score': 5,\n",
       "  'id': 56,\n",
       "  'parents': ['7d92424c6c1b3cc8444bcc2eadeb8fe19e735cef6ff7b99b4edff1588156156b',\n",
       "   '9d017b069a7fdca27525e9564dbf86e8cc578bebad3a3f8df65894e348bcb0c2'],\n",
       "  'atoms_pulled': [],\n",
       "  'left_pred': [],\n",
       "  'max_broken': 3,\n",
       "  'tree_depth': 3,\n",
       "  'prob_gen': 2.814654731508881e-09,\n",
       "  'form': 'CH',\n",
       "  'base_mass': 13.007825032,\n",
       "  'frag_hs': 1,\n",
       "  'max_remove_hs': 1,\n",
       "  'max_add_hs': 3,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0008455236675217748,\n",
       "   0.0011153934756293893,\n",
       "   0.0005705076036974788,\n",
       "   0.0007873864378780127,\n",
       "   0.0007467424147762358,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [6.96087484,\n",
       "   7.968699872,\n",
       "   8.976524904,\n",
       "   9.984349936,\n",
       "   10.992174968,\n",
       "   12.0,\n",
       "   13.007825032,\n",
       "   14.015650063999999,\n",
       "   15.023475095999999,\n",
       "   16.031300127999998,\n",
       "   17.039125159999998,\n",
       "   18.046950191999997,\n",
       "   19.054775224],\n",
       "  'mz_charge': [7.968151292,\n",
       "   8.975976324,\n",
       "   9.983801355999999,\n",
       "   10.991626387999998,\n",
       "   11.99945142,\n",
       "   13.007276452,\n",
       "   14.015101483999999,\n",
       "   15.022926515999998,\n",
       "   16.030751547999998,\n",
       "   17.038576579999997,\n",
       "   18.046401611999997,\n",
       "   19.054226643999996,\n",
       "   20.062051676]},\n",
       " '8bd5d1f1475d40a7e8f4f997bf984cb9031abcadae494874fb13bfeb5e6e4088': {'frag': 512,\n",
       "  'frag_hash': '8bd5d1f1475d40a7e8f4f997bf984cb9031abcadae494874fb13bfeb5e6e4088',\n",
       "  'score': 2,\n",
       "  'id': 57,\n",
       "  'parents': ['9d017b069a7fdca27525e9564dbf86e8cc578bebad3a3f8df65894e348bcb0c2',\n",
       "   '7d92424c6c1b3cc8444bcc2eadeb8fe19e735cef6ff7b99b4edff1588156156b'],\n",
       "  'atoms_pulled': [],\n",
       "  'left_pred': [],\n",
       "  'max_broken': 4,\n",
       "  'tree_depth': 3,\n",
       "  'prob_gen': 5.093856447757616e-10,\n",
       "  'form': 'O',\n",
       "  'base_mass': 15.99491462,\n",
       "  'frag_hs': 0,\n",
       "  'max_remove_hs': 0,\n",
       "  'max_add_hs': 4,\n",
       "  'intens': [0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.0,\n",
       "   0.002623799489811063,\n",
       "   0.002144021447747946,\n",
       "   0.002153277862817049,\n",
       "   0.004017884377390146,\n",
       "   0.0016927400138229132,\n",
       "   0.0,\n",
       "   0.0],\n",
       "  'mz_no_charge': [9.947964427999999,\n",
       "   10.95578946,\n",
       "   11.963614492,\n",
       "   12.971439523999999,\n",
       "   13.979264556,\n",
       "   14.987089588,\n",
       "   15.99491462,\n",
       "   17.002739652,\n",
       "   18.010564684,\n",
       "   19.018389715999998,\n",
       "   20.026214748,\n",
       "   21.03403978,\n",
       "   22.041864812],\n",
       "  'mz_charge': [10.955240879999998,\n",
       "   11.963065912,\n",
       "   12.970890943999999,\n",
       "   13.978715975999998,\n",
       "   14.986541008,\n",
       "   15.99436604,\n",
       "   17.002191072,\n",
       "   18.010016103999998,\n",
       "   19.017841135999998,\n",
       "   20.025666167999997,\n",
       "   21.0334912,\n",
       "   22.041316232,\n",
       "   23.049141264]}}"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "frags"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Convert from frags dict into a list of mz, inten\n",
    "mass_to_obj = defaultdict(lambda: {})\n",
    "for k, val in frags.items():\n",
    "    masses, intens, form  = val[\"mz_charge\"], val[\"intens\"], val[\"form\"]\n",
    "    for m, i in zip(masses, intens):\n",
    "        if i <= 0:\n",
    "            continue\n",
    "        cur_obj = mass_to_obj[m]\n",
    "        if cur_obj.get(\"inten\", 0) > 0:\n",
    "            # update\n",
    "            if cur_obj.get(\"inten\") < i:\n",
    "                cur_obj[\"frag_hash\"] = k\n",
    "                cur_obj['form'] = form\n",
    "            cur_obj[\"inten\"] += i\n",
    "        else:\n",
    "            cur_obj[\"inten\"] = i\n",
    "            cur_obj[\"frag_hash\"] = k\n",
    "            cur_obj['form'] = form\n",
    "\n",
    "max_inten = max(*[i[\"inten\"] for i in mass_to_obj.values()], 1e-9)\n",
    "mass_to_obj = {\n",
    "    k: dict(inten=v[\"inten\"] / max_inten, frag_hash=v[\"frag_hash\"], \n",
    "            form=v['form'])\n",
    "            \n",
    "    for k, v in mass_to_obj.items()\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[(85.08860077199999,\n",
       "  {'inten': 1.0,\n",
       "   'frag_hash': '77c612658d9c1394c61f30180110764f6e37b5b6b3609c15454df4effcf2a493',\n",
       "   'form': 'C5NH12'}),\n",
       " (60.08077574,\n",
       "  {'inten': 0.7905296450460808,\n",
       "   'frag_hash': '8f252d273e7b489fb75b631ec7d98c2b578504bba768cab7f151c670bb90645e',\n",
       "   'form': 'C3NH9'}),\n",
       " (103.038970504,\n",
       "  {'inten': 0.5980335583454397,\n",
       "   'frag_hash': '74a28b2eb10efab52a55f9f1410d4ef4f3e975f6a16f9d271c4b7a7a1bba946d',\n",
       "   'form': 'C4O3H7'}),\n",
       " (104.046795536,\n",
       "  {'inten': 0.15307084245437627,\n",
       "   'frag_hash': '74a28b2eb10efab52a55f9f1410d4ef4f3e975f6a16f9d271c4b7a7a1bba946d',\n",
       "   'form': 'C4O3H7'}),\n",
       " (103.099165456,\n",
       "  {'inten': 0.10095686675940693,\n",
       "   'frag_hash': '17db8521c8db2384f13a90b65b28929e84aaa5abc7bcbdaea76b28a11deaa147',\n",
       "   'form': 'C5NOH13'}),\n",
       " (86.09642580399999,\n",
       "  {'inten': 0.09934865063101318,\n",
       "   'frag_hash': '77c612658d9c1394c61f30180110764f6e37b5b6b3609c15454df4effcf2a493',\n",
       "   'form': 'C5NH12'}),\n",
       " (85.02840582,\n",
       "  {'inten': 0.028503450321093162,\n",
       "   'frag_hash': 'd26812b1b6d202c627808035a74f50f90949d31a4aae98f4d90dd58572d4604b',\n",
       "   'form': 'C4O2H6'}),\n",
       " (77.059705948,\n",
       "  {'inten': 0.02673141637753597,\n",
       "   'frag_hash': '37c46c6b2b387ccf520a2a13011c9fd742eec012b4c5c7a4cb030e5d2f90f12c',\n",
       "   'form': 'C3O2H5'}),\n",
       " (61.088600772,\n",
       "  {'inten': 0.0264888086160993,\n",
       "   'frag_hash': '8f252d273e7b489fb75b631ec7d98c2b578504bba768cab7f151c670bb90645e',\n",
       "   'form': 'C3NH9'}),\n",
       " (105.054620568,\n",
       "  {'inten': 0.024923670828915674,\n",
       "   'frag_hash': '74a28b2eb10efab52a55f9f1410d4ef4f3e975f6a16f9d271c4b7a7a1bba946d',\n",
       "   'form': 'C4O3H7'})]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "sorted(list(mass_to_obj.items()), key = lambda x: x[1][\"inten\"], reverse=True)[:10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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c+fqlltusbdJKIiPj4969eqlXr16STq30uP69eu1ZMkSffDBB0pMTJR0LiG88847C10RszI89thjTsmbKyv//fXXXyV6jRMnTtjHjqOi0rnFXnx9fe3pmuPHj9dTTz1VovaLUrNmTfv74ejRo+XWrjuUdlXKgkYkAaC8MG0SALxMSEiIbrnlFvtx7lS1yMhI9e3bt9Ttrl692p6maFmWXnrppWITN0n5Rs1KI3exkY0bN+o///mP07kPP/ywRG1VqVJFffr00Ztvvqlff/1VLVu2tM9t2bKl0qdPOsq7QEhCQkKxdf744w+XE+S4uDinso7XLp17Xx2fcxy1LQ9t27a1j7ds2VKubVe2vKOUriZlx48fr4hwAEASyRsAeKWCFiUZM2ZMmfawclzmv3bt2qpfv36xddLT07Vu3bpSv2ZB/u///s9p0+iSLqvvqE6dOnrxxRednitLe2WVd0GX8PBwl+qtXLnSpXLLly93etypU6d8ZRz35Vu+fHmxi9CURM+ePe3j48ePa/369eXSruOehZW1JURoaKjT/6fCtsHIq7IWyAFwYSJ5AwAv1KNHD1199dW69NJL7a8xY8aUqU3HxUEcVyQsyty5cytk3yjH0aGybOidt63yaK8s8iYzri5dP3PmTJfKvffee/ZxzZo1C9xnzfEeu1OnTrnctituvvlmp0VBXnrppXJp1/HePVdGK8tDlSpVnPYTLGhfu7z++OMPrV69uiLDAnCBI3kDAC+1fPly7dixw/6KiooqU3uOqzYmJCQ4bbhckIMHD+qJJ55wqe3Y2FiX4zDGOO2Blve6Tp8+7bSqYXEc9zUrqL2S2rRpkyZMmFDgUvlFSUtL03PPPef03KBBg1yq++233+qTTz4psszs2bOdRn1GjRqlgICAfOWio6PVo0cP+/ETTzyRr4+Kk5WVVeA2B40bN3aa0vvf//5X77zzTonaLojje+Z4j2dFc9wEe8mSJUW+58YY3X///eU6kgkAeZG8AQAknVvK33HUZOzYsYUmXevXr1fPnj0VHx/v0n1xd9xxh3r27KlFixYVee9QVlaWHn30Ue3du9d+7vrrr3cq89NPP6lx48Z68skni71n6+eff9ajjz5qP27QoEGZN49OTk7WP/7xD0VFRemBBx5waURmz5496tu3r7Zv324/17JlS914443F1s3t39GjR+uLL74osMxHH33ktHF5eHh4kQuRvP322/ZoVlJSknr27Kk5c+YUu+/cwYMH9cILLygqKsppYRRHU6dOddrX7v7779eECROKXDXzl19+0bhx47Rhw4YCz3ft2tU+jomJ0aJFiyplv7LbbrvNPo6Pj9eYMWMK3MswMTFRt99+u7788ssyTV0GgOKw2iQAQNK5+8PuvPNOzZgxQ9K5fdLatGmjoUOHqlOnTqpataqOHj2qb7/9VjExMZLOLRc/ePBgvf3220W2bYzR2rVrtXbtWgUHB6tbt27q2LGj6tevr+rVqyslJUX79u3T0qVLdejQIbveJZdcUuAKmvHx8XrppZf00ksvqUWLFuratavatGmj8PBw+fj46NixY9qwYYOWL1/ulJC8+uqrLiWbrkhMTNT06dM1ffp0RUREqGvXrrrkkktUu3ZtVatWTampqTp48KDWr1+vjRs3OiUbISEhmjNnjqpUqVLs63Tv3l1+fn5as2aNrr/+evXq1UsDBw5U7dq1dfz4cX355ZdOSY9lWXrrrbecNuvOq02bNvrggw80bNgwZWRkKDExUXfccYeee+45XX311Wrbtq1q1Kih9PR0nT59Wvv27dOWLVtcul+wQYMGmj9/vq677jqlp6fLGKN//OMfmjFjhgYNGqS2bdsqLCxMSUlJ+vXXX7V+/Xpt27ZNkjRixIgC2xwxYoQmTpyo9PR05eTkaPjw4brnnnvUsGFDpz84TJkyRdddd12xMbrqmmuuUefOnfXDDz9IkpYuXapWrVppxIgRatq0qc6ePauffvpJS5Ys0alTp1StWjXde++9mjp1arnFAABODADAY8yePdtIsr9+/vnncmm3Zs2adpujR48utFxKSorp0qWLUwyFfdWvX99s3brVTJw40X4uMjKywHZ79erlUpuOX5deeqk5cuRIvrbWrFlT4rZ8fX3N66+/Xi59uXbtWuPj41PiGHK/mjZtajZu3Fjka4wePdou36tXL3P06FHTpk2bYtv28fExb7zxhsvXsm7dOhMREVGq6zh+/Hix/VS7du0StblmzZpC25s9e7bx9/cvsv7s2bPz1XE8Xxr79u1zqY+qV69uVqxY4fJr5v0+PnjwoEvxFHW9hXH8/1fU/38Ano9pkwAAW1BQkGJiYvToo4/mWyo9V3BwsO644w799NNP6tChg0vtPv/883rggQfUokWLYste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l8rOznZ3WAAAAADgVh6XvOVKS0vTJ598oiFDhqh+/foaP368tm3b5u6wAAAAAMAtPC55u/TSS/Pt33bixAm9/vrr6tSpk9q0aaOXX35ZcXFxbowSAAAAACqXxyVv27dv165du/TYY4+pQYMGTueMMdq7d6+eeuopRUZGql+/fvrggw+UkpLipmiLlpSUpEmTJqldu3YKCQlRaGioOnXqpFdeeUUZGRnl+lr33nuvLMuSZVmKiooq17YBAAAAuJ9lHIe5PIwxRmvWrNG8efP02WefKSkpSdK5zbuNMfaG3EFBQbrxxhs1cuRI9evXzyM26j506JB69+6t2NhYSedizM7OVnp6uiSpffv2WrVqlcLCwsr8WjExMbryyivtEcvIyEj7dStLjRo1JEnx8fGV+roAipaSkqKQkBBJUnJysoKDg90cEQrDe1Uy9BcAd3Hn516PG3lzZFmWrrzySs2ZM0fHjh3T/PnzNWDAAPn4nAs7N1lJSUnRhx9+qAEDBqhRo0Z68skntWvXLrfFnZ2drcGDBys2Nlb16tXTN998o5SUFKWmpmrhwoWqVq2atm/frhEjRpT5tVJTU3XXXXfJz89PHTt2LIfoAQAAAHgij07eHAUGBurWW2/V119/rbi4OL3yyitq3759vvvjjhw5oqlTp+rSSy9Vhw4d9J///KfSY50zZ45+/vlnSdKSJUvUr18/SZKPj4+GDRumGTNmSJKWLVumVatWlem1nnnmGf3+++96/PHH1aZNm7IFDgAAAMBjeU3y5qhOnToaP368tm7dql27dunxxx93uj/OGCNjjHbs2KG///3vlR7f3LlzJUl9+vRRt27d8p0fPny4mjRpIkmaN29eqV9n06ZNev3119WiRQs9++yzpW4HAAAAgOfzyuTN0cUXX6wXX3xRhw4d0qpVqzRmzBhVq1bNbfe9paamav369ZKkgQMHFljGsiwNGDBAkrRy5cpSvU56errGjh0rY4xmzJihqlWrli5gAAAAAF7B65O3XJZlKTw8XGFhYQoKCnJbHHv37lVOTo4kqW3btoWWyz137NgxnT59usSvM2XKFO3du1d33nmnevfuXapYAQAAAHgPP3cHUFZHjhzR/Pnz9cEHH2j37t3uDkdHjhyxj/NudeDI8dyRI0cUHh7u8mts375dL7/8surWrauXX365dIECAAAA8Cpembyl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",
      "text/plain": [
       "<Figure size 900x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot the output\n",
    "fig = plt.figure(figsize=(3, 2), dpi=300)\n",
    "for k, v in mass_to_obj.items():\n",
    "    # Plot verticle line from k to v['inten']\n",
    "    plt.plot([k, k], [0, v[\"inten\"]], color=\"black\", linewidth=0.5)\n",
    "    # Can also get the frag id if we want to plot one of these in particular\n",
    "\n",
    "plt.xlabel(\"m/z\")\n",
    "plt.ylabel(\"Relative Intensity\")\n",
    "plt.title(\"Mass Spectrum\")\n",
    "# Set ylim\n",
    "plt.ylim(0, 1.1)\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "ms-gen",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.0"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
